読者です 読者をやめる 読者になる 読者になる

絶品ゆどうふのタレ

ふと気づいたことを綴るだけのメモ

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するともうちょっとおもろい。
無限ループはしないから安心してどうぞ。