我尝试通过引用 Phps array_walk_recursive
传递第三个参数
$field = 'foo';
array_walk_recursive($config, function($value, $key, &$field) {
$field = 'bar';
}, $field);
echo $field // 'foo'
为什么 $field
仍然是 'foo'
,尽管它已作为引用传递给函数?
最佳答案
根据php documentation of anonymous functions闭包的继承变量必须在函数头中使用关键字 use
定义,这使我的示例具有:
function($value, $key) use (&$field) { ... }
尽管回调函数从其父级继承了用 use
声明的参数,这意味着它已在其声明(未执行)的作用域/函数中继承。
关于php - 在 Php 中将用户数据作为对 array_walk_recursive 的引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24751543/