PHP 7.1 报错:Cannot use string offset as an array

文章目录

    有一段在 PHP 5 下运行正常的代码,放到了 PHP 7.1 环境下执行报错。

    报错信息为:

    Cannot use string offset as an array

    代码片段

    $data = ‘’;
    
    foreach ($_POST as $k=>$v)
    {
    	$data[$k]['id'] = $k;     // 报错
    	$data[$k]['val'] = I("post.".$k);
    }
    

    解决方法

    将初始化的空字符串替换为 array。

    $data = array();
    

    不明白为啥字符串还有这种谜一样的操作,而且 PHP5 居然还允许 。。。