ふと現場で質問されて、検証用に書いてみたコード。
<?php $awk = array(1,2,3,4,5); $i = 0; foreach($awk as $v) { $i ++; unset($awk[$i]); var_dump($awk); echo "{$v}\n"; } var_dump($awk);
………うんまぁわかるんだけどさぁ。
これたぶん「foreachの時点で、いったん、配列のcopy」してるよねぇ?
事故は減りそうだけど、メモリは食いそうだなぁ…
「へんなことはしない」のが一番だとはいえ、興味深い挙動だったので、共有。