在 php 中可以通过索引访问当前数组的元素吗?例子:
$arr = array(
'index1' => function() {
echo 'foo'; //foo
},
'index2' => function() {
$arr['index1']() // foo ??????????
echo 'bar'; //bar
}
);
怎么打电话$arr['index1']()
?$arr
这里的问题是这$arr
是一个在函数外部定义的变量,因此不能从函数内部访问它。
尝试使用将$arr
变量导入闭包use ($arr)
是很诱人的,但这不起作用,因为$arr
在定义函数时实际上并没有定义。
只要$arr
真的是一个全局变量,您就可以像这样更新函数以使其工作:
'index2' => function() {
global $arr;
$arr['index1'](); // foo
echo 'bar'; //bar
}
不过,一个更好的主意是将数组作为参数传递给函数,如下所示:
'index2' => function($a) {
$a['index1'](); // foo
echo 'bar'; //bar
}
...并这样称呼它:
$arr['index2']($arr);