php7.2的&引用问题

 /**
     * 执行树形数据生成 非递归实现
     * @author RuizhaoLee <liruizhao970302@outlook.com>
     * @param  array $array      要进行转化的数组
     * @param  string $returnType 转化的结果返回模式,支持array|json
     * @param  string $children   子节点下标,默认'children'
     * @param  string $defaultId  id节点下标,默认'id'
     * @param  string $defaultPar 父id节点下标,默认'pid'
     * @return onject
     */
    public function mark($data, $children = 'children', $defaultId = 'id', $defaultPar = 'pid')
    {
        $data = $this->collection($data);
        $tree = [];
        foreach ($data as $item) {
            $tree[$item[$defaultId]] = $item;
            $tree[$item[$defaultId]][$children] = [];
        }

        foreach ($tree as $key => $item) {
            if ($item[$defaultPar] != 0) {
                $tree[$item[$defaultPar]][$children][] = &$tree[$key];
                if (empty($tree[$key][$children])) unset($tree[$key][$children]);
            }
        }

        foreach ($tree as $key => &$item) {
            if ($item[$defaultPar] != 0) unset($tree[$key]);
            if (empty($item[$children])) unset($item[$children]);
        }

        $this->tree = $tree;
        return $this;
    }

这段代码在低于7.0的版本中没有问题,转到7.2就报错了.报错内容如下:

clipboard.png

出错行数在
clipboard.png

个人觉得是&引用的问题 百度搜索过没有答案,希望能得到答案谢谢~

阅读 2.5k
1 个回答

引用一般是用在方法的参数传递吧,没这样用过

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏