Enviar un valor al generador

# Generator::send

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

Generator::send — Enviar un valor al generador

### Descripción

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

Envía el valor dado al generador como resultado de la expresión `yield` actual y reanuda la ejecución del generador.

Si el generador no es una expresión `yield` en el momento de invocar a este método, se permitirá avanzar a la primera expresión `yield` antes de enviar el valor. Por tanto, no es necesario «preparar» generadores de PHP con una llamada a Generator::next() (como se hace en Python).

### Parámetros

`value`

  El valor a enviar al generador. Este valor será el valor devuelto de la expresión `yield` en la que está actualmente el generador.

### Valores devueltos

Devuelve el valor producido.

### Ejemplos

Ejemplo #1 Empleo de Generator::send() para inyectar valores

    <?php
    function printer() {
        echo "¡Soy una impresora!".PHP_EOL;
        while (true) {
            $string = yield;
            echo $string.PHP_EOL;
        }
    }

    $printer = printer();
    $printer->send('¡Hola mundo!');
    $printer->send('¡Adiós mundo!');
    ?>

El ejemplo anterior mostrará:

    ¡Soy una impresora!
    ¡Hola mundo!
    ¡Adiós mundo!

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open