The IteratorIterator class

- « InfiniteIterator::next

- IteratorIterator::__construct »

- PHP Manual
- Iterators
- The IteratorIterator class

# The IteratorIterator class

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

## Introduction

This iterator wrapper allows the conversion of anything that is Traversable into an Iterator. It is important to understand that most classes that do not implement Iterators have reasons as most likely they do not allow the full Iterator feature set. If so, techniques should be provided to prevent misuse, otherwise expect exceptions or fatal errors.

## Class synopsis

class IteratorIterator implements OuterIterator {
/* Methods */
public __construct(Traversable `$iterator`, ?string `$class` = `null`)
public current(): mixed
public getInnerIterator(): ?Iterator
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

## Notes

> Note:

> This class permits access to methods of the inner iterator via the __call magic method.

## Table of Contents

- IteratorIterator::__construct — Create an iterator from anything that is traversable
- IteratorIterator::current — Get the current value
- IteratorIterator::getInnerIterator — Get the inner iterator
- IteratorIterator::key — Get the key of the current element
- IteratorIterator::next — Forward to the next element
- IteratorIterator::rewind — Rewind to the first element
- IteratorIterator::valid — Checks if the iterator is valid