无法正确使用字符串偏移量作为数组

时间:2018-07-07 15:43:53

标签: php hook

我使用的是旧版PHP hook class,并且我的PHP更新出现问题
这是我的错误

[php7:error] PHP Fatal error:  Uncaught Error: Cannot use string offset as an array in /var/www/html/libs/Hooks.class.php:202\nStack  

这是我的源代码(ligne 202)

function add_hook($tag, $function, $priority = 10) {
    if (! isset ( $this->hooks [$tag] )) {
        die ( "There is no such place ($tag) for hooks." );
    } else {
        $this->hooks [$tag] [$priority] [] = $function; // <-- this is problem (line 202)
    }
}

如果我更改引起如下问题的行:

$this->hooks [$tag] [$priority] = $function; // <-- this is problem (line 202)

我只得到内容的第一个字母(如图所示)

enter image description here

我不知道如何解决问题

1 个答案:

答案 0 :(得分:1)

如果将var定义为字符串-您将无法添加数组元素。您的解决方案-使用Cnange库函数可以:

function set_hook($tag) {
    $this->hooks [$tag] = [];
}

为了获得更好的代码质量-将函数声明更改为:

function add_hook($tag, $function, $priority = "10") {