# The RecursiveIteratorIterator class

(PHP 5, PHP 7)

## Introduction

Can be used to iterate through recursive iterators.

## Class synopsis

RecursiveIteratorIterator implements OuterIterator {
/* Constants */
const int LEAVES_ONLY = 0 ;
const int SELF_FIRST = 1 ;
const int CHILD_FIRST = 2 ;
const int CATCH_GET_CHILD = 16 ;
/* Methods */
public beginChildren ( ) : void
public beginIteration ( ) : void
public callGetChildren ( ) : RecursiveIterator
public callHasChildren ( ) : bool
public __construct ( Traversable `$iterator` [, int `$mode` = RecursiveIteratorIterator::LEAVES_ONLY [, int `$flags` = 0 ]] )
public current ( ) : mixed
public endChildren ( ) : void
public endIteration ( ) : void
public getDepth ( ) : int
public getInnerIterator ( ) : iterator
public getMaxDepth ( ) : mixed
public getSubIterator ([ int `$level` ] ) : RecursiveIterator
public key ( ) : mixed
public next ( ) : void
public nextElement ( ) : void
public rewind ( ) : void
public setMaxDepth ([ int `$max_depth` = -1 ] ) : void
public valid ( ) : bool
/* Inherited methods */
public OuterIterator::getInnerIterator ( ) : Iterator
}

## Predefined Constants

`RecursiveIteratorIterator::LEAVES_ONLY`

`RecursiveIteratorIterator::SELF_FIRST`

`RecursiveIteratorIterator::CHILD_FIRST`

`RecursiveIteratorIterator::CATCH_GET_CHILD`

## Table of Contents

- RecursiveIteratorIterator::beginChildren — Begin children
- RecursiveIteratorIterator::beginIteration — Begin Iteration
- RecursiveIteratorIterator::callGetChildren — Get children
- RecursiveIteratorIterator::callHasChildren — Has children
- RecursiveIteratorIterator::__construct — Construct a RecursiveIteratorIterator
- RecursiveIteratorIterator::current — Access the current element value
- RecursiveIteratorIterator::endChildren — End children
- RecursiveIteratorIterator::endIteration — End Iteration
- RecursiveIteratorIterator::getDepth — Get the current depth of the recursive iteration
- RecursiveIteratorIterator::getInnerIterator — Get inner iterator
- RecursiveIteratorIterator::getMaxDepth — Get max depth
- RecursiveIteratorIterator::getSubIterator — The current active sub iterator
- RecursiveIteratorIterator::key — Access the current key
- RecursiveIteratorIterator::next — Move forward to the next element
- RecursiveIteratorIterator::nextElement — Next element
- RecursiveIteratorIterator::rewind — Rewind the iterator to the first element of the top level inner iterator
- RecursiveIteratorIterator::setMaxDepth — Set max depth
- RecursiveIteratorIterator::valid — Check whether the current position is valid