array_walk_recursive 地址引用报错的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了array_walk_recursive 地址引用报错的问题相关的知识,希望对你有一定的参考价值。
今天看十八哥的视频,学习array_walk_recursive的用法,发现一直报错:
php版本:5.6.19
代码界面:
报错界面:
查了很长时间,不知道什么问题,后来在网上终于找到原因所在:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
意思是调用时引用传参已经被移除了,就是不能通过function(&$a)这种方式传参调用函数.
解决方案:
查看你的php.ini配置文件,把其中的 allow_call_time_pass_reference参数调整为true,并重启服务器试试。
======================================
此外,以前的php代码在升级到5.4版本的php可能会出现这种错误:
当我们这样使用函数(或者类)的话,会产生一个error:
foo(&$var);
实际上,这样用本来就是错的,只是之前的错误级别仅仅是Deprecated而已。
而正确的使用方法应该是在函数定义时:
function foo(& $var) {
//other code
}
而在调用时直接传参就行了: foo($var);
正确代码:
在函数声明是添加引用符号即可。
以上是关于array_walk_recursive 地址引用报错的问题的主要内容,如果未能解决你的问题,请参考以下文章
php 使用array_walk_recursive从类中调用函数
PHP二维数组转换成一维数组,一个变量多个二维数组转换成一维数组,PHP二维数组(或任意维数组)转换成一维数组的方法汇总,array_reduce(); array_walk_recursive()