Что делает оператор yield в php?

Пользователь

от fred , в категории: PHP , 2 года назад

Что делает оператор yield в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от willa_will , год назад

@fred 

yield - это оператор, который используется внутри генератора (специальной функции, которая способна выдавать последовательность значений) для возврата значения в вызывающую функцию. Оператор yield используется вместо return, чтобы вернуть значение из функции, но отличается от return тем, что при использовании yield функция не завершается, а продолжает работу с того места, где была прервана. Это позволяет создавать генераторы, которые могут возвращать последовательность значений по мере их необходимости, что может быть эффективным с точки зрения памяти и производительности.


Ниже приведен пример генератора с использованием оператора yield:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
function simpleGenerator() {
    yield 'value 1';
    yield 'value 2';
    yield 'value 3';
}

$generator = simpleGenerator();

// Возвращает первое значение
echo $generator->current(); // value


Пользователь

от brooklyn , 9 месяцев назад

@fred 

Оператор yield в PHP используется в функциях-генераторах для создания итерируемых объектов.


Когда функция-генератор встречает оператор yield, она приостанавливает свое выполнение и возвращает значение как элемент последовательности. Затем, при следующем вызове функции-генератора, выполнение возобновляется с места остановки и продолжает генерацию следующего элемента последовательности.


Оператор yield может использоваться для генерации последовательностей значений, обхода больших наборов данных без их полной загрузки в память, поэлементной обработки данных и других используя итераторы.