Что такое итераторы?

Ответ

Итератор - объект, который позволяет обходить коллекцию элементов через единый интерфейс.

class FileLineIterator implements Iterator {
    private $file;
    private int $line = 0;

    public function current(): string { return fgets($this->file); }
    public function key(): int { return $this->line; }
    public function next(): void { $this->line++; }
    public function rewind(): void { rewind($this->file); $this->line = 0; }
    public function valid(): bool { return !feof($this->file); }
}

Объекты, реализующие Iterator или IteratorAggregate, можно использовать в foreach.

SPL-итераторы: ArrayIterator, DirectoryIterator, RecursiveIteratorIterator, FilterIterator, LimitIterator. Они позволяют обрабатывать данные лениво, без загрузки всего в память.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.