Php генераторы

20.10.2017 22:04:22

Генератор, это функция которая возвращает набор элементов, но не массивом за раз, а по одному элементу при каждом обращении.

Это позволяет не выделять память сразу для всего массива, а резервировать только для текущего элемента.

Реализуется это заменой return на yield . В момент вызова yield происходит выход из функции, но состояние не изменяется и при следующей итерации работа будет продолжена

Пример:

 
function gen_one_to_three() {
    for ($i = 1; $i <= 3; $i++) {
        // $i сохраняет свое значение между вызовами.
        yield $i;
    }
}

$generator = gen_one_to_three();
foreach ($generator as $value) {
    echo "$value\n";
}

Подробнее можно посмотреть в документации Синтаксис генераторов


Категории: PHP
Яндекс.Метрика