Générateurs

1 h Niveau 9

Parcourir une grande collection de données en utilisant une construction en boucle telle que FOREACH nécessiterait une grande mémoire et un temps de traitement considérable. Avec les générateurs, il est possible d'itérer sur un ensemble de données sans ces frais généraux. Une fonction de générateur est similaire à une fonction normale. Toutefois, au lieu de l'instruction return dans une fonction, le générateur utilise le mot-clé yield pour être exécuté de manière répétée afin de fournir des valeurs à itérer.

Le mot-clé yield est le cœur du mécanisme du générateur. Même si son utilisation semble être semblable à celle de return, il n'arrête pas l'exécution de la fonction. Il fournit la valeur suivante pour l'itération et met en pause l'exécution de la fonction.

Valeur de yield

Une boucle FOR qui donne chaque valeur de la variable de bouclage est utilisée dans une fonction de générateur.

Exemple 1

<?php
function squaregenerator(){
   for ($i=1; $i<=5; $i++){
      yield $i*$i;
   }
}
$gen=squaregenerator();
foreach ($gen as $val){
   echo($val . " ");
}
?>

La réponse est semblable à une boucle FOREACH normale.

Réponse 1

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus