Annotation of embedaddon/php/ext/spl/tests/recursiveIteratorIterator_endchildren_error.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SPL: RecursiveIteratorIterator - Exception thrown in endchildren which should be handled in next()
3: --FILE--
4: <?php
5:
6: $arr = array(array(1,2));
7: $arrOb = new ArrayObject($arr);
8:
9: $recArrIt = new RecursiveArrayIterator($arrOb->getIterator());
10:
11: class MyRecursiveIteratorIterator extends RecursiveIteratorIterator {
12:
13: function endchildren() {
14: throw new Exception;
15: }
16: }
17:
18:
19: $recItIt = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD);
20:
21: foreach ($recItIt as $val) echo "$val\n";
22:
23: $recItIt2 = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY);
24:
25: echo "===NEXT LOOP===\n";
26:
27: foreach ($recItIt2 as $val) echo "$val\n";
28:
29: ?>
30: --EXPECTF--
31: 1
32: 2
33: ===NEXT LOOP===
34: 1
35: 2
36:
37: Fatal error: Uncaught exception 'Exception' in %s
38: Stack trace:
39: #0 [internal function]: MyRecursiveIteratorIterator->endchildren()
40: #1 %s: RecursiveIteratorIterator->next()
41: #2 {main}
42: thrown in %s on line %d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>