foreachのポインタ
ちょっとこのエントリを見て(≧◇≦)エーーー!とかおもったので試してみた。
で、どうも参照渡しの際の挙動が大きく変わってるぽい。
最初に内部ポインタがずれるのはその辺の絡みなのかもね。
ちなみに自分の試したのは5.2.4と5.2.1だけど、5.2.1ではまだ5.1.6と挙動は同じな感じ。
<?php $a = array('a','b','c'); var_dump(current($a)); echo "===\n"; foreach ($a as &$v) { var_dump(current($a)); echo "---\n"; } var_dump(current($a)); echo "===\n"; foreach ($a as $v) { var_dump(current($a)); echo "---\n"; }
結果:
5.2.4
string(1) "a" === string(1) "b" --- string(1) "c" --- bool(false) --- bool(false) === string(1) "b" --- string(1) "b" --- string(1) "b" ---
5.2.1
string(1) "a" === string(1) "a" --- string(1) "a" --- string(1) "a" === string(1) "a" --- string(1) "a" --- string(1) "a" ---
ふーんへーほー。みたいな。
追記:resetするともうちょっとおもろい。
無限ループはしないから安心してどうぞ。