PHPのforeach
大概の言語であるforeach
触ったことある言語でないのはc言語くらいかな
phpのforeachのマニュアル読んでて
変な動作だなーと思ったけど、辺り前かとも思う動作を見つけたので紹介
<?php $arr = array(1,2,3); foreach($arr as $v) { echo "$v\n"; } echo "last=$v\n";
このプログラムを実行すると
1 2 3 last=3
と出力されます。
foreachで最後に取り出された要素が
終わったあとでも参照したままらしいです
{}でスコープが死なずに、変数が生きている
こういう思ってたのと違う動作がバグの原因になったりするんだろうなー
マニュアルでは
unset($v);
で参照を解除しましょう。
って書いてるけど、スコープで死んでくれればいいのに