thinkphp中 Illegal offset type异常

一、错误提示

thinkphp中 Illegal offset type异常-LMLPHP

二、解决思路

1、看出错提示中的函数为assign函数,那说明是我们在从控制器assign数据到页面的部分出现了错误

2、看if选择结构的判断语句,表达的意思如下

  因为第二个参数($value值)一定要是数组,所以看传递过来的第一个参数($name键)是否是数组,

  如果是数组,那就合并键和值的两个数组的值,

  否则就将($value值)做为值,($name键)作为键组成数据

3、array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

4、看到粉红色标注的第97行出现问题,很容易想到是控制器页面的assign函数出现问题,并且第一个参数还不是数组,并且还出现了问题

三、解答

结合源代码,如下

thinkphp中 Illegal offset type异常-LMLPHP

在看出错提示中的assign函数是有两个参数的,而我们的代码当中只有一个参数

轻松知道是少了一个参数而导致键和值的组合出现了问题

正确的写法为:$this->assign('data',$data);

四、总结

其实多看错误提示多分析,真的非常轻松就找到错在哪

比瞎乱找错要好很多,效率要高很多,当然多看参考手册也是非常好的找错方式

05-11 22:44