Possible Duplicate:
Strange behaviour after loop by reference - Is this a PHP bug?
Consider this code:
$start = array("a", "b", "c");
foreach ($start as &$item) {}
foreach ($start as $item) {}
print_r($start);
配列を foreach して要素を参照として使用し、次に再び foreach を実行すると、今度は通常の変数を使用しますが、参照と同じ変数名を保持すると、入力配列の最後の要素が前の内容で上書きされます1。
上記のコードは次を出力します。
Array
(
[0] => a
[1] => b
[2] => b
)
なぜこれが起こるのか誰か説明してもらえますか?メモリのアドレス指定の問題だと思いますが、この現象にはロジックが見つかりません。ここで舞台裏で何が起こっているのですか?