thinkphp中 Illegal offset type异常
一、错误提示
二、解决思路
1、看出错提示中的函数为assign函数,那说明是我们在从控制器assign数据到页面的部分出现了错误
2、看if选择结构的判断语句,表达的意思如下
因为第二个参数($value值)一定要是数组,所以看传递过来的第一个参数($name键)是否是数组,
如果是数组,那就合并键和值的两个数组的值,
否则就将($value值)做为值,($name键)作为键组成数据
3、array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
4、看到粉红色标注的第97行出现问题,很容易想到是控制器页面的assign函数出现问题,并且第一个参数还不是数组,并且还出现了问题
三、解答
结合源代码,如下
在看出错提示中的assign函数是有两个参数的,而我们的代码当中只有一个参数
轻松知道是少了一个参数而导致键和值的组合出现了问题
正确的写法为:$this->assign('data',$data);
四、总结
其实多看错误提示多分析,真的非常轻松就找到错在哪
比瞎乱找错要好很多,效率要高很多,当然多看参考手册也是非常好的找错方式