質問: 100; var_dump($ary); ``` 一番下の行のvar_dump($ary)を出力しますと、「array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(6) [3]=> int(8) [4]=> &int(100) }」このように表示されますが、キーが4の値が「&int(100)」この部分の、「&int」とはなんなのでしょうか?また、元々、10が格納されていた位置に「100」が格納される点も分かりません。ご教示頂けましたら、幸いです。 よろしくお願いします コードの出典です。
回答: 上の方の`foreach`では、`$a`は各要素への参照として動いていきます。そして、その参照はループを抜けても最後の要素を指して**有効なまま**となります。 そのため、あとから`$a`に代入すれば配列の要素も変化しますし、配列の方も「参照アクセスされている」ことを示す`&`が残ったままとなります。 このようなトラブルを避けるには、`foreach`を抜けた後で、`unset($a);`として参照を潰しておきましょう。