Le générateur yield en PHP

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. Un return 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.