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


Changing the reference of an array with a function not working

以下作品...

$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],但事实并非如此。

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

$array = &$array[$subpath];

php 中的引用不像 C 指针。改变它

$array = $array[$subpath];

什么是参考文献