Php 访问回调函数外部的变量递归数组遍历

Php 访问回调函数外部的变量递归数组遍历,php,scope,Php,Scope,假设我有以下示例代码: <?php $arr = array(0 => array(0 => 1, 1 => 2), 1 => 3); $val = ''; function test($item, $key){ if($key === 0){ $val = 'found'; } } array_walk_recursive($arr, 'test'); ?> 显然,$val超出了test()的范围。相反,它只是在

假设我有以下示例代码:

<?php

$arr = array(0 => array(0 => 1, 1 => 2), 1 => 3);
$val = '';

function test($item, $key){
    if($key === 0){
        $val = 'found';
    }
}

array_walk_recursive($arr, 'test');

?>

显然,
$val
超出了
test()
的范围。相反,它只是在函数内部设置
$val
,并在完成后立即销毁它。如何从函数内部设置函数外部的值


注:我很确定这是我应该知道的简单的事情。我已经工作了几个小时,再也受不了了。希望你们能帮我。提前谢谢

使用匿名函数:
array\u walk\u recursive($arr,function($item,$key)Use(&$val){…})
。如果没有匿名函数和
use
,解决方法将涉及类,而且有点过于夸张了。@deceze啊,当然!谢谢!