Middle
Come funziona un generatore in PHP?
sobes.tech AI
Risposta dell'AI
Un generatore è una funzione che restituisce un iteratore. Permette di attraversare un insieme di dati senza caricare l'intera matrice in memoria, usando la parola chiave yield. Ad ogni chiamata a yield, l'esecuzione della funzione si mette in pausa, viene restituito un valore e lo stato della funzione viene conservato. Alla successiva chiamata a next(), l'esecuzione dell'iteratore riprende dal punto in cui si era interrotta.
<?php
function numberGenerator($limit) {
for ($i = 1; $i <= $limit; $i++) {
yield $i; // Mette in pausa l'esecuzione e restituisce il valore
}
}
$numbers = numberGenerator(5);
foreach ($numbers as $number) {
echo $number . " "; // Mostra: 1 2 3 4 5
}
?>
Vantaggi:
- Risparmio di memoria: Permette di elaborare grandi volumi di dati senza caricarli completamente in memoria.
- Caricamento pigro: I valori vengono generati su richiesta, quando sono necessari.
- Miglioramento delle prestazioni per determinati compiti, come la lettura di grandi file.
Utilizzato per iterare su grandi collezioni, leggere file riga per riga, implementare sequenze infinite.