(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Generator::send — Envoie une valeur au générateur
Envoie 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 de Generator::send() pour injecter des données
<?php
function printer() {
echo "Je suis une imprimante !".PHP_EOL;
while (true) {
$string = yield;
echo $string.PHP_EOL;
}
}
$printer = printer();
$printer->send('Bonjour le monde !');
$printer->send('Au revoir le monde !');
?>L'exemple ci-dessus va afficher :
Je suis une imprimante ! Bonjour le monde ! Au revoir le monde !