Sobes.tech
Middle

Cum funcționează un generator în PHP?

sobes.tech AI

Răspuns de la AI

Un generator este o funcție care returnează un iterator. Permite parcurgerea unui set de date fără a încărca întregul array în memorie, folosind cuvântul cheie yield. La fiecare apelare a yield, execuția funcției se întrerupe, se returnează o valoare și starea funcției este păstrată. La următoarea apelare a next(), execuția iteratorului continuă de unde s-a oprit.

<?php

function numberGenerator($limit) {
    for ($i = 1; $i <= $limit; $i++) {
        yield $i; // Întrerupe execuția și returnează valoarea
    }
}

$numbers = numberGenerator(5);

foreach ($numbers as $number) {
    echo $number . " "; // Afișează: 1 2 3 4 5
}

?>

Avantaje:

  • Economisire de memorie: Permite procesarea unor volume mari de date fără a le încărca complet în memorie.
  • Încărcare leneșă: Valorile sunt generate la cerere, atunci când sunt necesare.
  • Îmbunătățirea performanței pentru anumite sarcini, cum ar fi citirea fișierelor mari.

Utilizat pentru iterarea pe colecții mari, citirea fișierelor linie cu linie, implementarea secvențelor infinite.