Annotation of embedaddon/php/ext/spl/tests/iterator_016.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SPL: RecursiveIteratorIterator and beginChildren/endChildren
3: --FILE--
4: <?php
5:
6: class Menu extends ArrayObject
7: {
8: function getIterator()
9: {
10: echo __METHOD__ . "\n";
11: return new RecursiveArrayIterator($this);
12: }
13: }
14:
15: class MenuOutput extends RecursiveIteratorIterator
16: {
17: function __construct(Menu $it)
18: {
19: parent::__construct($it);
20: }
21: function rewind()
22: {
23: echo "<ul>\n";
24: parent::rewind();
25: }
26: function beginChildren()
27: {
28: echo str_repeat(' ',$this->getDepth())."<ul>\n";
29: }
30:
31: function endChildren()
32: {
33: echo str_repeat(' ',$this->getDepth())."</ul>\n";
34: }
35: function valid()
36: {
37: if (!parent::valid()) {
38: echo "<ul>\n";
39: return false;
40: }
41: return true;
42: }
43: }
44:
45: $arr = array("a", array("ba", array("bba", "bbb"), array(array("bcaa"))), array("ca"), "d");
46: $obj = new Menu($arr);
47: $rit = new MenuOutput($obj);
48: foreach($rit as $k=>$v)
49: {
50: echo str_repeat(' ',$rit->getDepth()+1)."$k=>$v\n";
51: }
52: ?>
53: ===DONE===
54: <?php exit(0); ?>
55: --EXPECTF--
56: Menu::getIterator
57: <ul>
58: 0=>a
59: <ul>
60: 0=>ba
61: <ul>
62: 0=>bba
63: 1=>bbb
64: </ul>
65: <ul>
66: <ul>
67: 0=>bcaa
68: </ul>
69: </ul>
70: </ul>
71: <ul>
72: 0=>ca
73: </ul>
74: 3=>d
75: <ul>
76: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>