Интерфейс Iterator , вероятно, основан на Java Iterators. Он предоставляет общий интерфейс для непрерывной итерации по списку элементов с использованием конструкции foreach
.
Ваш код определяет класс, который реализует этот интерфейс. По сути, он обеспечивает те же функциональные возможности, которые поддерживает массив, но добавляет некоторые операторы echo.
Зачем использовать итераторы?
Преимущество Итератора заключается в том, что он предоставляет высокоуровневый абстрагированный интерфейс, поэтому вызывающему его коду не нужно сильно беспокоиться о происходящем. В то же время он позволяет обрабатывать большие источники данных (извлечение строк из БД, чтение строк из файла) в виде фрагментов без необходимости загружать все данные в память сразу.