Annotation of embedaddon/php/ext/spl/tests/recursive_tree_iterator_006.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SPL: RecursiveTreeIterator and IteratorAggregate
3: --INI--
4: error_reporting=E_ALL&~E_NOTICE
5: --FILE--
6: <?php
7:
8: $ary = array(
9: 0 => array(
10: "a",
11: 1,
12: ),
13: "a" => array(
14: 2,
15: "b",
16: 3 => array(
17: 4,
18: "c",
19: ),
20: "3" => array(
21: 4,
22: "c",
23: ),
24: ),
25: );
26:
27: class RecursiveArrayIteratorAggregated implements IteratorAggregate {
28: public $it;
29: function __construct($it) {
30: $this->it = new RecursiveArrayIterator($it);
31: }
32: function getIterator() {
33: return $this->it;
34: }
35: }
36:
37: $it = new RecursiveArrayIteratorAggregated($ary);
38: echo "-- flags = BYPASS_KEY --\n";
39: foreach(new RecursiveTreeIterator($it) as $k => $v) {
40: echo "[$k] => $v\n";
41: }
42: echo "-- flags = BYPASS_CURRENT --\n";
43: foreach(new RecursiveTreeIterator($it, RecursiveTreeIterator::BYPASS_CURRENT) as $k => $v) {
44: echo "[$k] => $v\n";
45: }
46: echo "-- flags = BYPASS_KEY|BYPASS_KEY --\n";
47: foreach(new RecursiveTreeIterator($it, RecursiveTreeIterator::BYPASS_CURRENT|RecursiveTreeIterator::BYPASS_KEY) as $k => $v) {
48: echo "[$k] => $v\n";
49: }
50: echo "-- flags = 0 --\n";
51: foreach(new RecursiveTreeIterator($it, 0) as $k => $v) {
52: echo "[$k] => $v\n";
53: }
54: echo "-- flags = 0, caching_it_flags = CachingIterator::CATCH_GET_CHILD --\n";
55: foreach(new RecursiveTreeIterator($it, 0, CachingIterator::CATCH_GET_CHILD) as $k => $v) {
56: echo "[$k] => $v\n";
57: }
58:
59: ?>
60: ===DONE===
61: --EXPECTF--
62: -- flags = BYPASS_KEY --
63: [0] => |-Array
64: [0] => | |-a
65: [1] => | \-1
66: [a] => \-Array
67: [0] => |-2
68: [1] => |-b
69: [3] => \-Array
70: [0] => |-4
71: [1] => \-c
72: -- flags = BYPASS_CURRENT --
73: [|-0] => Array
74: [| |-0] => a
75: [| \-1] => 1
76: [\-a] => Array
77: [ |-0] => 2
78: [ |-1] => b
79: [ \-3] => Array
80: [ |-0] => 4
81: [ \-1] => c
82: -- flags = BYPASS_KEY|BYPASS_KEY --
83: [0] => Array
84: [0] => a
85: [1] => 1
86: [a] => Array
87: [0] => 2
88: [1] => b
89: [3] => Array
90: [0] => 4
91: [1] => c
92: -- flags = 0 --
93: [|-0] => |-Array
94: [| |-0] => | |-a
95: [| \-1] => | \-1
96: [\-a] => \-Array
97: [ |-0] => |-2
98: [ |-1] => |-b
99: [ \-3] => \-Array
100: [ |-0] => |-4
101: [ \-1] => \-c
102: -- flags = 0, caching_it_flags = CachingIterator::CATCH_GET_CHILD --
103: [|-0] => |-Array
104: [| |-0] => | |-a
105: [| \-1] => | \-1
106: [\-a] => \-Array
107: [ |-0] => |-2
108: [ |-1] => |-b
109: [ \-3] => \-Array
110: [ |-0] => |-4
111: [ \-1] => \-c
112: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>