(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Generator::send — Envoi une valeur au générateur
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).
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.
Retourne la valeur cédée.
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!