我不知道该怎么说。PHP 5.4 ForEach疯狂?
以下面的例子。
<?
$arr = array('first','second','third', 'fourth');
foreach ($arr as $k=>&$n) {
$n = $n;
}
var_dump($arr);
>?
回报
array(4) {
[0]=>
string(5) "first"
[1]=>
string(6) "second"
[2]=>
string(5) "third"
[3]=>
&string(6) "fourth"
}
这非常有意义,为什么会什么改变呢?那么,添加第二个循环甚至没有做任何事情,就是我迷失了方向。
<?
$arr = array('first','second','third', 'fourth');
foreach ($arr as $k=>&$n) {
$n = $n;
}
foreach ($arr as $k=>$n) {
;
}
var_dump($arr);
?>
返回
array(4) {
[0]=>
string(5) "first"
[1]=>
string(6) "second"
[2]=>
string(5) "third"
[3]=>
&string(5) "third"
}
阵列的最后一个值已成为一样的倒数第二个。为什么?
http://stackoverflow.com/questions/4969243/strange-behavior-of-foreach/4969286#4969286 –
[下面是这个效果的一个很好的描述](http://schlueters.de/blog/archives /141-References-and-foreach.html)以及它为什么会在参考迭代中发生。 –