Annotation of embedaddon/php/ext/spl/tests/iterator_024.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: SPL: RecursiveIteratorIterator with custom iterator class
! 3: --FILE--
! 4: <?php
! 5:
! 6: $ar = array(1, 2, array(31, 32, array(331)), 4);
! 7:
! 8: foreach(new RecursiveIteratorIterator(new ArrayObject($ar, 0, "RecursiveArrayIterator")) as $v) echo "$v\n";
! 9:
! 10: $it = new ArrayObject($ar);
! 11: var_dump($it->getIteratorClass());
! 12:
! 13: try
! 14: {
! 15: foreach(new RecursiveIteratorIterator(new ArrayObject($ar)) as $v) echo "$v\n";
! 16: }
! 17: catch (InvalidArgumentException $e)
! 18: {
! 19: echo $e->getMessage() . "\n";
! 20: }
! 21:
! 22: echo "===MANUAL===\n";
! 23:
! 24: $it->setIteratorClass("RecursiveArrayIterator");
! 25: var_dump($it->getIteratorClass());
! 26: foreach(new RecursiveIteratorIterator($it) as $v) echo "$v\n";
! 27:
! 28:
! 29: ?>
! 30: ===DONE===
! 31: <?php exit(0); ?>
! 32: --EXPECT--
! 33: 1
! 34: 2
! 35: 31
! 36: 32
! 37: 331
! 38: 4
! 39: string(13) "ArrayIterator"
! 40: An instance of RecursiveIterator or IteratorAggregate creating it is required
! 41: ===MANUAL===
! 42: string(22) "RecursiveArrayIterator"
! 43: 1
! 44: 2
! 45: 31
! 46: 32
! 47: 331
! 48: 4
! 49: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>