Generator::send

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::sendПередаёт значение в генератор

Описание

public Generator::send(mixed $value): mixed

Метод передаёт значение в генератор как результат текущего выражения yield и возобновляет выполнение генератора.

Если при вызове этого метода генератор ещё не дошёл до первого вызова оператора yield, генератору сначала будет разрешено перейти к первому вызову yield перед отправкой значения. Поэтому нет необходимости «возобновлять» работу PHP-генераторов вызовом Generator::next() перед вызовом этого метода (как это делается в языке Python).

Список параметров

value

Значение, которое отправляется в генератор. Это значение будет текущим возвращаемым значением выражения yield генератора.

Возвращаемые значения

Метод возвращает значение, которое отдал генератор.

Примеры

Пример #1 Пример внедрения значений через метод Generator::send()

<?php

function printer()
{
echo
"I'm printer!" . PHP_EOL;

while (
true) {
$string = yield;
echo
$string . PHP_EOL;
}
}

$printer = printer();
$printer->send('Hello world!');
$printer->send('Bye world!');

?>

Результат выполнения приведённого примера:

I'm printer!
Hello world!
Bye world!