
иллюстрировать
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. Надеюсь, оно будет полезно всем.