* Return the current element * @link http://php.net/manual/en/iterator.current.php * @return mixed Can return any type. */ public function current() { return $this->children[$this->index]; } /** * (PHP 5 >= 5.0.0)
* Move forward to next element * @link http://php.net/manual/en/iterator.next.php * @return void Any returned value is ignored. */ public function next() { $this->index++; } /** * (PHP 5 >= 5.0.0)
* Return the key of the current element * @link http://php.net/manual/en/iterator.key.php * @return scalar scalar on success, or null on failure. */ public function key() { return $this->index; } /** * (PHP 5 >= 5.0.0)
* Checks if current position is valid * @link http://php.net/manual/en/iterator.valid.php * @return bool The return value will be casted to boolean and then evaluated. * Returns true on success or false on failure. */ public function valid() { return isset($this->children[$this->index]); } /** * (PHP 5 >= 5.0.0)
* Rewind the Iterator to the first element * @link http://php.net/manual/en/iterator.rewind.php * @return void Any returned value is ignored. */ public function rewind() { $this->index = 0; } /** * (PHP 5 >= 5.1.0)
* Returns if an iterator can be created fot the current entry. * @link http://php.net/manual/en/recursiveiterator.haschildren.php * @return bool true if the current entry can be iterated over, otherwise returns false. */ public function hasChildren() { if ($this->valid() && ($this->current() instanceof RecursiveIterator)) { return true; } return false; } /** * (PHP 5 >= 5.1.0)
* Returns an iterator for the current entry. * @link http://php.net/manual/en/recursiveiterator.getchildren.php * @return RecursiveIterator An iterator for the current entry. */ public function getChildren() { return $this->children[$this->index]; } }