使用不起作用的函数更改数组的引用

时间:2015-10-18 23:38:57

标签: php pass-by-reference

以下作品......

$a = ['a','b','c'=>[1,2,3]];
$b = &$a;
$b = &$b['c'];

所以...我想用这个函数改变数组的引用:

function change_array_pointer ( &$array, $path ) {    
    foreach ($path as $subpath) {
        $array = &$array[$subpath];
    }    
}

看起来很简单,但不起作用。

例如,此代码无效,我不知道原因:

$a = ['a','b','c'=>[1,2,3]];
$b = &$a;
change_array_pointer($b,['c']);

在我看来,$ b应该是[1,2,3],但事实并非如此。

请向我解释发生了什么:(

1 个答案:

答案 0 :(得分:1)

$array = &$array[$subpath];

php中的引用与C指针不同。用

改变它
$array = $array[$subpath];

What References Are