--TEST-- SPL: InfiniteIterator --FILE-- <?php class ArrayIteratorEx extends ArrayIterator { function rewind() { echo __METHOD__ . "\n"; parent::rewind(); } function valid() { echo __METHOD__ . "\n"; return parent::valid(); } function current() { echo __METHOD__ . "\n"; return parent::current(); } function key() { echo __METHOD__ . "\n"; return parent::key(); } function next() { echo __METHOD__ . "\n"; parent::next(); } } $it = new InfiniteIterator(new ArrayIteratorEx(range(0,2))); $pos =0; foreach ($it as $v) { var_dump($v); if ($pos++ > 5) { break; } } ?> ===DONE=== <?php exit(0); ?> --EXPECT-- ArrayIteratorEx::rewind ArrayIteratorEx::valid ArrayIteratorEx::current ArrayIteratorEx::key int(0) ArrayIteratorEx::next ArrayIteratorEx::valid ArrayIteratorEx::current ArrayIteratorEx::key int(1) ArrayIteratorEx::next ArrayIteratorEx::valid ArrayIteratorEx::current ArrayIteratorEx::key int(2) ArrayIteratorEx::next ArrayIteratorEx::valid ArrayIteratorEx::rewind ArrayIteratorEx::valid ArrayIteratorEx::current ArrayIteratorEx::key int(0) ArrayIteratorEx::next ArrayIteratorEx::valid ArrayIteratorEx::current ArrayIteratorEx::key int(1) ArrayIteratorEx::next ArrayIteratorEx::valid ArrayIteratorEx::current ArrayIteratorEx::key int(2) ArrayIteratorEx::next ArrayIteratorEx::valid ArrayIteratorEx::rewind ArrayIteratorEx::valid ArrayIteratorEx::current ArrayIteratorEx::key int(0) ===DONE===