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
"Я — принтер!" . PHP_EOL;

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

$printer = printer();

$printer->send('Привет, мир!');
$printer->send('Пока, мир!');

?>

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

I'm printer!
Hello world!
Bye world!