代码之家  ›  专栏  ›  技术社区  ›  Julien

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

  •  0
  • Julien  · 技术社区  · 6 年前

    我正在使用一个旧的php hook class 这是我犯的错误

    [php7:error]php致命错误:未捕获错误:无法在/var/www/html/libs/hooks.class.php:202\n堆栈中使用字符串偏移量作为数组
    
    
    

    这是我的源代码(ligine 202)

    function add_hook($tag,$function,$priority=10){
    如果(!)ISset($this->hooks[$tag])){
    die(“没有钩子的地方($tag)”);
    }其他{
    $this->挂钩[$tag][$priority][]=$function;/<--这是问题(第202行)
    }
    }
    
    
    

    如果我更改了导致如下问题的行:

    $this->hooks[$tag][$priority]=$function;//<--这是问题(第202行)
    
    
    

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

    我不知道如何解决问题是我犯的错误

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

    这是我的源代码(ligine 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 回复  |  直到 6 年前
        1
  •  1
  •   Vasyl Zhuryk    6 年前

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

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