Generator::send
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Generator::send — Envia um valor ao gerador
Descrição
Envia o valor informado ao gerador como resultado da expressão yield corrente e retorna a execução do gerador.
Se o gerador não estiver na expressão yield quando o método for chamado, primeiro será deixado avançar para a primeira expressão yield antes de enviar o valor. Assim como não é necessário "forçar" os geradores do PHP com uma chamada ao método Generator::next() (como é feito em Python).
Parâmetros
value
-
Valor a ser enviado ao gerador. Este valor será o retornado pela expressão yield em que o gerador estiver.
Valor Retornado
Retorna o valor gerado.
Exemplos
Example #1 Usando o método Generator::send() para injetar valores
<?php
function printer() {
echo "Valor inicial.".PHP_EOL;
while (true) {
$string = yield;
echo $string.PHP_EOL;
}
}
$printer = printer();
$printer->send('Envio 1.');
$printer->send('Envio 2.');
?>
O exemplo acima produzirá:
Valor inicial. Envio 1. Envio 2.