Middle
Comment fonctionne un générateur en PHP?
sobes.tech IA
Réponse de l'IA
Un générateur est une fonction qui renvoie un itérateur. Il permet de parcourir un ensemble de données sans charger toute la matrice en mémoire, en utilisant le mot-clé yield. À chaque appel de yield, l'exécution de la fonction est suspendue, une valeur est renvoyée, et l'état de la fonction est conservé. Lors du prochain appel à next(), l'exécution de l'itérateur reprend là où elle s'était arrêtée.
<?php
function numberGenerator($limit) {
for ($i = 1; $i <= $limit; $i++) {
yield $i; // Suspend l'exécution et renvoie la valeur
}
}
$numbers = numberGenerator(5);
foreach ($numbers as $number) {
echo $number . " "; // Affiche : 1 2 3 4 5
}
?>
Avantages:
- Économie de mémoire: Permet de traiter de grands volumes de données sans les charger entièrement en mémoire.
- Chargement paresseux: Les valeurs sont générées à la demande, quand elles sont nécessaires.
- Amélioration des performances pour certaines tâches, comme la lecture de grands fichiers.
Utilisé pour parcourir de grandes collections, lire des fichiers ligne par ligne, implémenter des séquences infinies.