mag*_*_al 4 php arrays reference
我尝试通过引用传递第三个参数Phps array_walk_recursive
$field = 'foo';
array_walk_recursive($config, function($value, $key, &$field) {
$field = 'bar';
}, $field);
echo $field // 'foo'
Run Code Online (Sandbox Code Playgroud)
为什么还$field
没有'foo'
,虽然它已作为参考传递给函数?
我将自己回答:
根据匿名函数的php文档,必须在函数头中使用关键字定义闭包的继承变量,该关键字use
留下我的示例:
function($value, $key) use (&$field) { ... }
Run Code Online (Sandbox Code Playgroud)
虽然回调函数继承了use
从其父项声明的参数,这意味着从范围/函数中已经声明(未执行).