我不知道該怎麼說。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)以及它爲什麼會在參考迭代中發生。 –