Annotation of embedaddon/php/ext/spl/tests/iterator_016.phpt, revision 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>