Зачем на практике нужны итераторы? Вообще, интересует в общем-то php и js, но они же есть во многих языках. Например зачем мне библиотека SPL и её интерфейсы итераторов, если у меня есть итерируемый массив, по которому можно пробежаться форычом. Хотелось бы увидеть примеры использования итераторов тогда, когда по другому проблему решить нельзя. Опять же я могу представить себе какую-либо структуру кастомную, по которой требуется чтобы можно было бегать как по массиву, тогда пишем итератор для неё. Но вот примеры костыльных собственных структур в php я не припомню. Ни разу не сталкивался с какими нибудь стеками, очередями и другими структурами в wordpress, joomla, drupal, сайты на yii2, symfony и т.д.
Тот же вопрос к генератором - их практическое использование. Ну тут допустим пригодятся они для обработки логов сервера. Нам нужна статистика, сколько хостов и т.д. и открыть файл лога мы не можем, он большой, а так скачиваем по строку и запросами в бд обновляем статистику и так пока не обработаем файл. Я правильно понимаю? Но опять же логично что такой софт будет писаться на c++, python или другом языке, но никак не на php.
Так foreach как раз с итератором и работает. Оно и есть самый простой пример.
Фактически, напрямую, без использования итератора, можно перебрать только индексированный массив. Если вы захотите перебрать ассоциативный массив без использования итератора, вам придется либо превратить его в индексированный, либо вытащить в индексированный массив его ключи и перебирать его с помощью for.
Вообще, итератор хорош тем, что уменьшает связность кода. Вам не нужно знать, сколько элементов в коллекции, какой следующий и т.д., вы просто говорите "дай еще один" и вам возвращается следующий либо false, если их больше нет.
Про генераторы, вот например одно из преимуществ Потребление памяти PHP-генераторами
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники