0

下面的这段代码报错,Uncaught PHP Exception SymfonyComponentDebugExceptionFatalThrowableError: "Cannot use string offset as an array" at /var/www/dot/src/AppBundle/BlogService/BlogMenu.php line 201

可以看出是Cannot use string offset as an array
中文意思大概不能使用字符串偏移作为数组
201行 $listData[$i]['item'] = $item;
请问,这个该怎么改,能帮忙改下吗?

  private function toList($lists)
    {
        if ($lists == null) {
            return null;
        }
        $listData = '';
        $prevElement = '';
        $i = 0;
        $item = '';
        $j = 0;
        foreach ($lists as $list) {
            switch ($list['type']) {
                case 'post':
                    $item = $this->getPost($list);
                    break;
                case 'link':
                    $item = $this->getLink($list);
                    break;
                case 'header':
                    $item = $this->getHeader($list);
                    break;
                case 'category':
                    $item = $this->getCategory($list);
                    break;
            }
            if ($list['parent'] == 1 && $i > 0) {
                if ($prevElement['parent'] == 0) {
                    $j = $i - 1;
                }
                $listData[$j]['child'][] = $item;
            } else {

                $listData[$i]['item'] = $item;
            }
            $prevElement = $list;
            $i++;

        }
        return $listData;
    }

2个回答

3

已采纳

你把 listData 赋值成了 '',却用数组方式来访问。。当然会错了。

0

你var_dump出来, 自然就知道原因了. $listData[$i] 肯定是一个字符串, 本来就不能当成数组赋值.

撰写答案