Sobes.tech
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.