Annotation of embedaddon/php/ext/spl/tests/iterator_002.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SPL: Iterator using getInnerIterator
3: --FILE--
4: <?php
5:
6: class RecursiceArrayIterator extends ArrayIterator implements RecursiveIterator
7: {
8: function hasChildren()
9: {
10: return is_array($this->current());
11: }
12:
13: function getChildren()
14: {
15: return new RecursiceArrayIterator($this->current());
16: }
17: }
18:
19: class CrashIterator extends FilterIterator implements RecursiveIterator
20: {
21: function accept()
22: {
23: return true;
24: }
25:
26: function hasChildren()
27: {
28: return $this->getInnerIterator()->hasChildren();
29: }
30:
31: function getChildren()
32: {
33: return new RecursiceArrayIterator($this->getInnerIterator()->current());
34: }
35: }
36:
37: $array = array(1, 2 => array(21, 22 => array(221, 222), 23 => array(231)), 3);
38:
39: $dir = new RecursiveIteratorIterator(new CrashIterator(new RecursiceArrayIterator($array)), RecursiveIteratorIterator::LEAVES_ONLY);
40:
41: foreach ($dir as $file) {
42: print "$file\n";
43: }
44:
45: ?>
46: ===DONE===
47: <?php exit(0); ?>
48: --EXPECT--
49: 1
50: 21
51: 221
52: 222
53: 231
54: 3
55: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>