PHP7 的 moxiemanager 错误
Error in moxiemanager with PHP7
将版本从PHP5更新到PHP7后,尝试从我集成到项目中的tinymce的moxiemanager插件中插入图片时出现错误。
告诉我:
错误:
数组到字符串的转换
几个小时后,我找到了错误
具体在:/home/user/website/admin/js/vendor/tinymce/plugins/moxiemanager/classes/Util/EventDispatcher.php:118
方法中:
public function dispatch($sender, $name, $args) {
$name = strtolower($name);
if (isset($this->observers[$name])) {
$observers = $this->observers[$name];
$args->setSender($sender);
for ($i = 0, $l = count($observers); $i < $l; $i++) {
$value = $observers[$i][1]->$observers[$i][0]($args);
// Is stopped then break the loop
if ($value === false || $args->isStopped()) {
return $args;
}
}
}
return $args;
}
您必须替换以下行:
$value = $observers[$i][1]->$observers[$i][0]($args);
为此:
$value = $observers[$i][1]->{$observers[$i][0]}($args);
PHP7 在分析源文件时使用抽象句法树。现在将严格从左到右评估对变量、属性和方法的间接访问。
将版本从PHP5更新到PHP7后,尝试从我集成到项目中的tinymce的moxiemanager插件中插入图片时出现错误。
告诉我: 错误: 数组到字符串的转换
几个小时后,我找到了错误
具体在:/home/user/website/admin/js/vendor/tinymce/plugins/moxiemanager/classes/Util/EventDispatcher.php:118
方法中:
public function dispatch($sender, $name, $args) {
$name = strtolower($name);
if (isset($this->observers[$name])) {
$observers = $this->observers[$name];
$args->setSender($sender);
for ($i = 0, $l = count($observers); $i < $l; $i++) {
$value = $observers[$i][1]->$observers[$i][0]($args);
// Is stopped then break the loop
if ($value === false || $args->isStopped()) {
return $args;
}
}
}
return $args;
}
您必须替换以下行:
$value = $observers[$i][1]->$observers[$i][0]($args);
为此:
$value = $observers[$i][1]->{$observers[$i][0]}($args);
PHP7 在分析源文件时使用抽象句法树。现在将严格从左到右评估对变量、属性和方法的间接访问。