иллюстрировать
1. Реализация интерфейса других функций-итераторов эквивалентна установке оболочки на другие итераторы. Существует только один метод.
2. Итераторы агрегации можно комбинировать со многими итераторами для достижения более эффективной итерации.
Пример
класс MainIterator реализует итератор { частный $var = массив(); public function __construct($array) //Функция конструктора, инициализация массива объектов { если (is_array($array)) { $this->var = $array; } } публичная функция перемотки() { echo "перемоткаn"; сброс($this->var); //Указываем внутренний указатель массива на первый элемент } публичная функция current() { $var = current($this->var // Возвращаем текущее значение массива echo "current: $varn"; вернуть $вар; } публичный функциональный ключ() { $var = key($this->var); //Вернем имя ключа текущего модуля, на который указывает внутренний указатель в массиве echo "key: $varn"; вернуть $вар; } публичная функция next() { $var = next($this->var); //Вернем значение следующей единицы, на которую указывает внутренний указатель массива echo "next: $varn"; вернуть $вар; } публичная функция valid() { return !is_null(key($this->var); //Определяем, является ли ключ текущего модуля пустым } }
Вышеупомянутое представляет собой введение в агрегатные итераторы PHP. Надеюсь, оно будет полезно всем.