Annotation of embedaddon/php/ext/spl/tests/iterator_014.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SPL: RecursiveIteratorIterator and beginChildren/endChildren
3: --FILE--
4: <?php
5:
6: class MyRecursiveArrayIterator extends RecursiveArrayIterator
7: {
8: function valid()
9: {
10: if (!parent::valid())
11: {
12: echo __METHOD__ . " = false\n";
13: return false;
14: }
15: else
16: {
17: return true;
18: }
19: }
20:
21: function getChildren()
22: {
23: echo __METHOD__ . "\n";
24: return parent::getChildren();
25: }
26: }
27:
28: class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
29: {
30: function rewind()
31: {
32: echo __METHOD__ . "\n";
33: parent::rewind();
34: }
35:
36: function valid()
37: {
38: echo __METHOD__ . "\n";
39: return parent::valid();
40: }
41:
42: function current()
43: {
44: echo __METHOD__ . "\n";
45: return parent::current();
46: }
47:
48: function key()
49: {
50: echo __METHOD__ . "\n";
51: return parent::key();
52: }
53:
54: function next()
55: {
56: echo __METHOD__ . "\n";
57: parent::next();
58: }
59:
60: function beginChildren()
61: {
62: echo __METHOD__ . "(".$this->getDepth().")\n";
63: }
64:
65: function endChildren()
66: {
67: echo __METHOD__ . "(".$this->getDepth().")\n";
68: }
69: }
70:
71: foreach(new RecursiveArrayIteratorIterator(new MyRecursiveArrayIterator(array("a", array("ba", array("bba", "bbb"), array(array("bcaa"))), array("ca"), "d"))) as $k=>$v)
72: {
73: echo "$k=>$v\n";
74: }
75: ?>
76: ===DONE===
77: <?php exit(0); ?>
78: --EXPECT--
79: RecursiveArrayIteratorIterator::rewind
80: RecursiveArrayIteratorIterator::valid
81: RecursiveArrayIteratorIterator::current
82: RecursiveArrayIteratorIterator::key
83: 0=>a
84: RecursiveArrayIteratorIterator::next
85: MyRecursiveArrayIterator::getChildren
86: RecursiveArrayIteratorIterator::beginChildren(1)
87: RecursiveArrayIteratorIterator::valid
88: RecursiveArrayIteratorIterator::current
89: RecursiveArrayIteratorIterator::key
90: 0=>ba
91: RecursiveArrayIteratorIterator::next
92: MyRecursiveArrayIterator::getChildren
93: RecursiveArrayIteratorIterator::beginChildren(2)
94: RecursiveArrayIteratorIterator::valid
95: RecursiveArrayIteratorIterator::current
96: RecursiveArrayIteratorIterator::key
97: 0=>bba
98: RecursiveArrayIteratorIterator::next
99: RecursiveArrayIteratorIterator::valid
100: RecursiveArrayIteratorIterator::current
101: RecursiveArrayIteratorIterator::key
102: 1=>bbb
103: RecursiveArrayIteratorIterator::next
104: MyRecursiveArrayIterator::valid = false
105: RecursiveArrayIteratorIterator::endChildren(2)
106: MyRecursiveArrayIterator::getChildren
107: RecursiveArrayIteratorIterator::beginChildren(2)
108: MyRecursiveArrayIterator::getChildren
109: RecursiveArrayIteratorIterator::beginChildren(3)
110: RecursiveArrayIteratorIterator::valid
111: RecursiveArrayIteratorIterator::current
112: RecursiveArrayIteratorIterator::key
113: 0=>bcaa
114: RecursiveArrayIteratorIterator::next
115: MyRecursiveArrayIterator::valid = false
116: RecursiveArrayIteratorIterator::endChildren(3)
117: MyRecursiveArrayIterator::valid = false
118: RecursiveArrayIteratorIterator::endChildren(2)
119: MyRecursiveArrayIterator::valid = false
120: RecursiveArrayIteratorIterator::endChildren(1)
121: MyRecursiveArrayIterator::getChildren
122: RecursiveArrayIteratorIterator::beginChildren(1)
123: RecursiveArrayIteratorIterator::valid
124: RecursiveArrayIteratorIterator::current
125: RecursiveArrayIteratorIterator::key
126: 0=>ca
127: RecursiveArrayIteratorIterator::next
128: MyRecursiveArrayIterator::valid = false
129: RecursiveArrayIteratorIterator::endChildren(1)
130: RecursiveArrayIteratorIterator::valid
131: RecursiveArrayIteratorIterator::current
132: RecursiveArrayIteratorIterator::key
133: 3=>d
134: RecursiveArrayIteratorIterator::next
135: MyRecursiveArrayIterator::valid = false
136: RecursiveArrayIteratorIterator::valid
137: MyRecursiveArrayIterator::valid = false
138: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>