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できなくて不便な時がままあるので。