1

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
)

なぜこれが起こるのか誰か説明してもらえますか?メモリのアドレス指定の問題だと思いますが、この現象にはロジックが見つかりません。ここで舞台裏で何が起こっているのですか?

4

0 に答える 0