(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Generator::send — Envia um valor ao gerador
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).
value
Valor a ser enviado ao gerador. Este valor será o retornado pela expressão
yield
em que o gerador estiver.
Retorna o valor gerado.
Exemplo #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.