我最近在玩PHP,希望在foreach循环中分配变量并同时通过引用传递值。我有点惊讶,没有奏效。代码:在foreach循环中设置变量并通过引用传递
$arr = array(
'one' => 'xxxxxxxx',
'two' => 'zzzzzzzz'
);
foreach ($foo = $arr as &$value) {
$value = 'test';
}
var_dump($foo);
结果:
array(2) { ["one"]=> string(8) "xxxxxxxx" ["two"]=> string(8) "zzzzzzzz" }
下面的办法显然不工作:
$arr = array(
'one' => 'xxxxxxxx',
'two' => 'zzzzzzzz'
);
$foo = $arr;
foreach ($foo as &$value) {
$value = 'test';
}
var_dump($foo);
结果:
array(2) { ["one"]=> string(4) "test" ["two"]=> &string(4) "test" }
是否有人知道为什么这些片段是不等价和什么是存在在幕后完成?
[PHP中的数组是通过值还是通过引用传递的?](https://stackoverflow.com/q/2030906/6521116) –