mysql 在PHP 5.6中使用[]创建数组,但在PHP 7.1中给予致命错误

lbsnaicq  于 2023-01-20  发布在  Mysql
关注(0)|答案(2)|浏览(77)

在PHP 5.6中这可以正常工作,但在PHP 7.1中会出现致命错误:未捕获的错误:字符串不支持[]运算符

$result->execute();
$result->bind_result($id, $name);   
while($result->fetch()){
    $datos[]=array(
        $id => $name
    );
}
unhi4e5o

unhi4e5o1#

从PHP 7.1开始,当你像访问数组一样访问一个非数组变量(在本例中是一个字符串)时,会抛出一个致命错误。
首先用$datos = [];初始化数组,这将覆盖之前设置的所有内容,并显式地将此变量设置为数组:

$result->execute();
$result->bind_result($id, $name);
$datos = [];
while($result->fetch()){
    $datos[]=array(
        $id => $name
    );
}

如果你试图创建一个$id =〉$name的数组,下面的代码应该可以工作:

$result->execute();
$result->bind_result($id, $name);
$datos = [];
while($result->fetch()){
    $datos[ $id ] = $name;
}
wrrgggsh

wrrgggsh2#

$cat_arr = explode(',',$row['category']);

        if (!$cat_arr[0]){
            $my_cat = '<font color="#b1b0b0">Sem Se&ccedil;&atilde;o</font>';
        } elseif (!$cat[$cat_arr[0]]){
            $my_cat = '<font color="#d50d0d">'.$echo['wrongCatID'].'</font>';
        } else {
            $my_cat = '';
            foreach($cat_arr as $tmp_cat){
                $my_cat[] =  $cat[$tmp_cat];
            }

            $my_cat = join(', ', $my_cat);
        }

此行错误:$我的猫[] = $猫[$临时猫];
有人能帮我纠正这个错误吗?
在php7中可以,在php7.1中有错误

相关问题