私が書いている単純なphpスクリプトで、非常に奇妙な動作をしました。バグを再現するのに必要な最低限に減らしました:
<?php
$arr = array("foo",
"bar",
"baz");
foreach ($arr as &$item) { /* do nothing by reference */ }
print_r($arr);
foreach ($arr as $item) { /* do nothing by value */ }
print_r($arr); // $arr has changed....why?
?>
これは出力します:
Array
(
[0] => foo
[1] => bar
[2] => baz
)
Array
(
[0] => foo
[1] => bar
[2] => bar
)
これはバグか、実際に発生すると思われる奇妙な動作ですか?
foreach($x AS &$y){ ... unset($y); }
。-間違いが多いため、実際にはphp.netにあります(場所はわかりません)。