diff options
Diffstat (limited to 'ext/spl/tests/iterator_022.phpt')
-rw-r--r-- | ext/spl/tests/iterator_022.phpt | 193 |
1 files changed, 95 insertions, 98 deletions
diff --git a/ext/spl/tests/iterator_022.phpt b/ext/spl/tests/iterator_022.phpt index f0831d5799..ae79932828 100644 --- a/ext/spl/tests/iterator_022.phpt +++ b/ext/spl/tests/iterator_022.phpt @@ -5,128 +5,126 @@ SPL: RecursiveIteratorIterator and callHasChildren/callGetChildren class MyRecursiveArrayIterator extends RecursiveArrayIterator { - function getChildren() - { - echo __METHOD__ . "\n"; - return $this->current(); - } + function getChildren() + { + echo __METHOD__ . "\n"; + return $this->current(); + } - function valid() - { - if (!parent::valid()) - { - echo __METHOD__ . " = false\n"; - return false; - } - else - { - return true; - } - } + function valid() + { + if (!parent::valid()) + { + echo __METHOD__ . " = false\n"; + return false; + } + else + { + return true; + } + } } class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator { - private $max_depth; - private $over = 0; - private $skip = false; + private $max_depth; + private $over = 0; + private $skip = false; - function __construct($it, $max_depth) - { - $this->max_depth = $max_depth; - parent::__construct($it); - } + function __construct($it, $max_depth) + { + $this->max_depth = $max_depth; + parent::__construct($it); + } - function rewind() - { - echo __METHOD__ . "\n"; - $this->skip = false; - parent::rewind(); - } + function rewind() + { + echo __METHOD__ . "\n"; + $this->skip = false; + parent::rewind(); + } - function valid() - { - echo __METHOD__ . "\n"; - if ($this->skip) - { - $this->skip = false; - $this->next(); - } - return parent::valid(); - } + function valid() + { + echo __METHOD__ . "\n"; + if ($this->skip) + { + $this->skip = false; + $this->next(); + } + return parent::valid(); + } - function current() - { - echo __METHOD__ . "\n"; - return parent::current(); - } + function current() + { + echo __METHOD__ . "\n"; + return parent::current(); + } - function key() - { - echo __METHOD__ . "\n"; - return parent::key(); - } + function key() + { + echo __METHOD__ . "\n"; + return parent::key(); + } - function next() - { - echo __METHOD__ . "\n"; - parent::next(); - } + function next() + { + echo __METHOD__ . "\n"; + parent::next(); + } - function callHasChildren() - { - $this->skip = false; - $has = parent::callHasChildren(); - $res = $this->getDepth() < $this->max_depth && $has; - echo __METHOD__ . "(".$this->getDepth().") = ".($res?"yes":"no")."/".($has?"yes":"no")."\n"; - if ($has && !$res) - { - $this->over++; - if ($this->over == 2) { - $this->skip = true; - } - } - return $res; - } + function callHasChildren() + { + $this->skip = false; + $has = parent::callHasChildren(); + $res = $this->getDepth() < $this->max_depth && $has; + echo __METHOD__ . "(".$this->getDepth().") = ".($res?"yes":"no")."/".($has?"yes":"no")."\n"; + if ($has && !$res) + { + $this->over++; + if ($this->over == 2) { + $this->skip = true; + } + } + return $res; + } - function callGetChildren() - { - if ($this->over == 2) - { - echo __METHOD__ . "(skip)\n"; - return NULL; - } - echo __METHOD__ . "(ok:{$this->over})\n"; - return new MyRecursiveArrayIterator($this->current()); - } + function callGetChildren() + { + if ($this->over == 2) + { + echo __METHOD__ . "(skip)\n"; + return NULL; + } + echo __METHOD__ . "(ok:{$this->over})\n"; + return new MyRecursiveArrayIterator($this->current()); + } - function beginChildren() - { - echo __METHOD__ . "(".$this->getDepth().")\n"; - } + function beginChildren() + { + echo __METHOD__ . "(".$this->getDepth().")\n"; + } - function endChildren() - { - echo __METHOD__ . "(".$this->getDepth().")\n"; - } + function endChildren() + { + echo __METHOD__ . "(".$this->getDepth().")\n"; + } } try { - foreach(new RecursiveArrayIteratorIterator(new MyRecursiveArrayIterator(array("a", array("ba", array("bba", "bbb"), array(array("bcaa"), array("bcba"))), array("ca"), "d")), 2) as $k=>$v) - { - if (is_array($v)) $v = join('',$v); - echo "$k=>$v\n"; - } + foreach(new RecursiveArrayIteratorIterator(new MyRecursiveArrayIterator(array("a", array("ba", array("bba", "bbb"), array(array("bcaa"), array("bcba"))), array("ca"), "d")), 2) as $k=>$v) + { + if (is_array($v)) $v = join('',$v); + echo "$k=>$v\n"; + } } catch(UnexpectedValueException $e) { - echo $e->getMessage() . "\n"; + echo $e->getMessage() . "\n"; } ?> -===DONE=== -<?php exit(0); ?> --EXPECT-- RecursiveArrayIteratorIterator::rewind RecursiveArrayIteratorIterator::callHasChildren(0) = no/no @@ -183,4 +181,3 @@ RecursiveArrayIteratorIterator::endChildren(1) RecursiveArrayIteratorIterator::callHasChildren(0) = yes/yes RecursiveArrayIteratorIterator::callGetChildren(skip) Objects returned by RecursiveIterator::getChildren() must implement RecursiveIterator -===DONE=== |