1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- --TEST--
- SPL: RecursiveIteratorIterator and begin/endIteration()
- --FILE--
- <?php
- class MyRecursiveIteratorIterator extends RecursiveIteratorIterator
- {
- function beginIteration(): void
- {
- echo __METHOD__ . "()\n";
- }
- function endIteration(): void
- {
- echo __METHOD__ . "()\n";
- }
- }
- $ar = array(1, 2, array(31, 32, array(331)), 4);
- $it = new MyRecursiveIteratorIterator(new ArrayObject($ar, 0, "RecursiveArrayIterator"));
- foreach($it as $v) echo "$v\n";
- echo "===MORE===\n";
- foreach($it as $v) echo "$v\n";
- echo "===MORE===\n";
- $it->rewind();
- foreach($it as $v) echo "$v\n";
- var_dump($it->valid());
- echo "===MANUAL===\n";
- $it->rewind();
- while($it->valid())
- {
- echo $it->current() . "\n";
- $it->next();
- break;
- }
- $it->rewind();
- while($it->valid())
- {
- echo $it->current() . "\n";
- $it->next();
- }
- ?>
- --EXPECT--
- MyRecursiveIteratorIterator::beginIteration()
- 1
- 2
- 31
- 32
- 331
- 4
- MyRecursiveIteratorIterator::endIteration()
- ===MORE===
- MyRecursiveIteratorIterator::beginIteration()
- 1
- 2
- 31
- 32
- 331
- 4
- MyRecursiveIteratorIterator::endIteration()
- ===MORE===
- MyRecursiveIteratorIterator::beginIteration()
- 1
- 2
- 31
- 32
- 331
- 4
- MyRecursiveIteratorIterator::endIteration()
- bool(false)
- ===MANUAL===
- MyRecursiveIteratorIterator::beginIteration()
- 1
- 1
- 2
- 31
- 32
- 331
- 4
- MyRecursiveIteratorIterator::endIteration()
|