123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- --TEST--
- SPL: NoRewindIterator
- --FILE--
- <?php
- class ArrayIteratorEx extends ArrayIterator
- {
- function rewind(): void
- {
- echo __METHOD__ . "\n";
- parent::rewind();
- }
- function valid(): bool
- {
- echo __METHOD__ . "\n";
- return parent::valid();
- }
- function current(): mixed
- {
- echo __METHOD__ . "\n";
- return parent::current();
- }
- function key(): string|int|null
- {
- echo __METHOD__ . "\n";
- return parent::key();
- }
- function next(): void
- {
- echo __METHOD__ . "\n";
- parent::next();
- }
- }
- class NoRewindIteratorEx extends NoRewindIterator
- {
- function rewind(): void
- {
- echo __METHOD__ . "\n";
- parent::rewind();
- }
- function valid(): bool
- {
- echo __METHOD__ . "\n";
- return parent::valid();
- }
- function current(): mixed
- {
- echo __METHOD__ . "\n";
- return parent::current();
- }
- function key(): mixed
- {
- echo __METHOD__ . "\n";
- return parent::key();
- }
- function next(): void
- {
- echo __METHOD__ . "\n";
- parent::next();
- }
- }
- $it = new NoRewindIteratorEx(new ArrayIteratorEx(range(0,3)));
- echo "===0===\n";
- foreach ($it->getInnerIterator() as $v) {
- var_dump($v);
- }
- echo "===1===\n";
- foreach ($it as $v) {
- var_dump($v);
- }
- $pos =0;
- $it = new NoRewindIteratorEx(new ArrayIteratorEx(range(0,3)));
- echo "===2===\n";
- foreach ($it as $v) {
- var_dump($v);
- if ($pos++ > 1) {
- break;
- }
- }
- echo "===3===\n";
- foreach ($it as $v) {
- var_dump($v);
- }
- echo "===4===\n";
- foreach ($it as $v) {
- var_dump($v);
- }
- ?>
- --EXPECT--
- ===0===
- ArrayIteratorEx::rewind
- ArrayIteratorEx::valid
- ArrayIteratorEx::current
- int(0)
- ArrayIteratorEx::next
- ArrayIteratorEx::valid
- ArrayIteratorEx::current
- int(1)
- ArrayIteratorEx::next
- ArrayIteratorEx::valid
- ArrayIteratorEx::current
- int(2)
- ArrayIteratorEx::next
- ArrayIteratorEx::valid
- ArrayIteratorEx::current
- int(3)
- ArrayIteratorEx::next
- ArrayIteratorEx::valid
- ===1===
- NoRewindIteratorEx::rewind
- NoRewindIteratorEx::valid
- ArrayIteratorEx::valid
- ===2===
- NoRewindIteratorEx::rewind
- NoRewindIteratorEx::valid
- ArrayIteratorEx::valid
- NoRewindIteratorEx::current
- ArrayIteratorEx::current
- int(0)
- NoRewindIteratorEx::next
- ArrayIteratorEx::next
- NoRewindIteratorEx::valid
- ArrayIteratorEx::valid
- NoRewindIteratorEx::current
- ArrayIteratorEx::current
- int(1)
- NoRewindIteratorEx::next
- ArrayIteratorEx::next
- NoRewindIteratorEx::valid
- ArrayIteratorEx::valid
- NoRewindIteratorEx::current
- ArrayIteratorEx::current
- int(2)
- ===3===
- NoRewindIteratorEx::rewind
- NoRewindIteratorEx::valid
- ArrayIteratorEx::valid
- NoRewindIteratorEx::current
- int(2)
- NoRewindIteratorEx::next
- ArrayIteratorEx::next
- NoRewindIteratorEx::valid
- ArrayIteratorEx::valid
- NoRewindIteratorEx::current
- ArrayIteratorEx::current
- int(3)
- NoRewindIteratorEx::next
- ArrayIteratorEx::next
- NoRewindIteratorEx::valid
- ArrayIteratorEx::valid
- ===4===
- NoRewindIteratorEx::rewind
- NoRewindIteratorEx::valid
- ArrayIteratorEx::valid
|