Генераторы (yield)
Генератор (англ. generator) — обычная функция, которая возвращает массив через ключевое слово yield
.
Ключевое слово yield
похоже на return
, она также возвращает значение, только после этого она не прекращает выполнять функцию, а переходит к следующему шагу yield
.
Генератор в основном используют в цикле foreach()
, когда надо вывести данные без создания массива.
// Создание генератора xrange function xrange($start, $limit) { for ($i = $start; $i <= $limit; $i++) { yield $i; } } // Использование генератора в цикле foreach (xrange(1, 5) as $number) { echo $number; } // 1, 2, 3, 4, 5
Преимущество генераторов в том, что она не занимает места в памяти, т.к. массив не создаётся. Это особенно полезно, когда надо обработать большой объём данных.
Любая функция, содержащая yield
, является генератором.
Генераторы появились в версии PHP 5.5.0.
Поддержать автора