Карточка Middle Функции, замыкания, генераторы обновлено

Генераторы: главное

Вопрос

Что нужно знать о генераторах PHP?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

- Функция с yield возвращает Generator (реализует Iterator). - Ленивое выполнение: код идёт до очередного yield. - yield $key = $value отдаёт пары, yield from делегирует. - send($v) передаёт значение внутрь (результат выражения yield). - return даёт итог, читается через getReturn(). - Перебрать генератор можно только…

Ответ

  • Функция с yield возвращает Generator (реализует Iterator).
  • Ленивое выполнение: код идёт до очередного yield.
  • yield $key => $value отдаёт пары, yield from делегирует.
  • send($v) передаёт значение внутрь (результат выражения yield).
  • return даёт итог, читается через getReturn().
  • Перебрать генератор можно только один раз.

Разбор

Типичное применение: чтение больших файлов, выборка из базы курсором (Model::lazy() в Laravel), конвейеры обработки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.