在php中可以通过索引访问当前数组的元素吗?

时间:2013-07-05 04:05:02

标签: php arrays

在php中可以通过索引访问当前数组的元素吗? 例如:

$arr = array(
    'index1' => function() {
        echo 'foo'; //foo
    },
    'index2' => function() {
        $arr['index1']() // foo ??????????
        echo 'bar';  //bar
    }
);

如何在$arr['index1']()中致电$arr

1 个答案:

答案 0 :(得分:4)

这里的问题是$arr是在函数外部定义的变量,因此无法从函数中访问它。

尝试使用$arruse ($arr)变量导入closure很有诱惑力,但这不会起作用,因为$arr实际上并未定义$arr你定义你的功能的时间。

只要'index2' => function() { global $arr; $arr['index1'](); // foo echo 'bar'; //bar } 真的是全局变量,你就可以更新这样的函数来使它工作:

'index2' => function($a) {
    $a['index1'](); // foo
    echo 'bar';  //bar
}

更好的想法是将数组作为参数传递给函数,如下所示:

$arr['index2']($arr);

......并且这样称呼它:

{{1}}