diff options
Diffstat (limited to 'ext/spl/tests/iterator_015.phpt')
-rw-r--r-- | ext/spl/tests/iterator_015.phpt | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/ext/spl/tests/iterator_015.phpt b/ext/spl/tests/iterator_015.phpt new file mode 100644 index 0000000..aa30f79 --- /dev/null +++ b/ext/spl/tests/iterator_015.phpt @@ -0,0 +1,62 @@ +--TEST-- +SPL: RecursiveIteratorIterator and beginChildren/endChildren +--FILE-- +<?php + +class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator +{ + function rewind() + { + echo "<ul>\n"; + parent::rewind(); + } + function beginChildren() + { + echo str_repeat(' ',$this->getDepth())."<ul>\n"; + } + + function endChildren() + { + echo str_repeat(' ',$this->getDepth())."</ul>\n"; + } + function valid() + { + if (!parent::valid()) { + echo "<ul>\n"; + return false; + } + return true; + } +} + +$arr = array("a", array("ba", array("bba", "bbb"), array(array("bcaa"))), array("ca"), "d"); +$obj = new RecursiveArrayIterator($arr); +$rit = new RecursiveArrayIteratorIterator($obj); +foreach($rit as $k=>$v) +{ + echo str_repeat(' ',$rit->getDepth()+1)."$k=>$v\n"; +} +?> +===DONE=== +<?php exit(0); ?> +--EXPECTF-- +<ul> + 0=>a + <ul> + 0=>ba + <ul> + 0=>bba + 1=>bbb + </ul> + <ul> + <ul> + 0=>bcaa + </ul> + </ul> + </ul> + <ul> + 0=>ca + </ul> + 3=>d +<ul> +===DONE=== |