(PHP 5 >= 5.5.0, PHP 7)
Generator::send — Передача значения в генератор
Передача заданного значения в генератор как результат текущего выражения yield и возобновление его работы.
Если генератор еще не дошел до первого зызова оператора yield, он выполнится до момента первого вызова yield, прежде чем передаст в него значение. Так что нет необходимости вызывать Generator::next() нового генератора перед вызовом этого метода (как это делается в Python).
value
Значение, которое отправляется в генератор. Это значение будет также и текущим возвращаемым значение генератора.
Волзвращает сгенерированное значение.
Пример #1 Использование Generator::send() для инъекции значений
<?php
function printer() {
while (true) {
$string = yield;
echo $string."\n";
}
}
$printer = printer();
$printer->send('Hello world!');
$printer->send('Bye world!');
?>
Результат выполнения данного примера:
Hello world! Bye world!