ArrayIteratorの内部ポインタ
内部に配列を持たせつつIterator実装しているライブラリでちょっとハマったのですが、配列に対するcurrent関数とArrayIteratorのcurrentメソッドが使うポインタが違うようですね。
<?php $test = new ArrayIterator(array(1,2,3)); $test->seek(2); echo "method:" . $test->current() . "<br />\n"; // 3 echo "func:" . current($test) . "<br />\n";// 1
まぁ、配列ではないArrayIteratorにcurrent関数を使うこと自体がイレギュラーなのかもしれませんが、配列はseekできなくて不便な時がままあるので。