Le générateur yield en PHP

par Rémi Leclerc, le 19/09/2016
En PHP (comme dans bien d'autres langages), le générateur yield
retourne une série de valeurs pouvant être parcourue avec un boucle foreach
notamment.
Le script suivant affichera par exemple 01
:
function monGenerateur(){
for ($i = 0; $i < 2; $i++) {
yield $i;
}
}
foreach (monGenerateur() as $valeur) {
echo $i;
}
À noter :
- Le générateur n'a pas besoin de
return
. Unreturn
vide arrêterait juste le générateur. - Le résultat d'un générateur n'est pas un tableau. Il n'est pas possible par exemple de récupérer directement la deuxième valeur, il doit être parcouru depuis le début.