Generator::send

(PHP 5 >= 5.5.0, PHP 7)

Generator::sendEnvoi une valeur au générateur

Description

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

Envoi la valeur fournie au générateur comme résultat de l'expression courante yield, et reprend l'exécution du générateur.

Si le générateur n'est pas une expression yield lorsque cette méthode est appelée, il va d'abord avancer à la première expression yield avant d'envoyer la valeur. Ainsi, il n'est pas nécessaire de démarrer un générateur PHP avec un appel à la méthode Generator::next() (comme c'est le cas en Python).

Liste de paramètres

value

Valeur à envoyer au générateur. Cette valeur sera la valeur retournée de l'expression yield de la position courante du générateur.

Valeurs de retour

Retourne la valeur cédée.

Exemples

Exemple #1 Exemple d'utilisation Generator::send() pour injecter des données

<?php
function printer() {
    echo 
"I'm printer!".PHP_EOL;
    while (
true) {
        
$string yield;
        echo 
$string;
    }
}

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

L'exemple ci-dessus va afficher :

I'm printer!
Hello world!
Bye world!