Sobes.tech
Middle

Kako radi generator u PHP-u?

sobes.tech АИ

Одговор од АИ

Generator je funkcija koja vraća iterator. Omogućava prolazak kroz skup podataka bez učitavanja celokupnog niza u memoriju, koristeći ključnu reč yield. Pri svakom pozivu yield, izvršavanje funkcije se zaustavlja, vraća se vrednost i stanje funkcije se čuva. Pri sledećem pozivu next(), izvršavanje iteratora se nastavlja od mesta gde je prekinuto.

<?php

function numberGenerator($limit) {
    for ($i = 1; $i <= $limit; $i++) {
        yield $i; // Zaustavlja izvršavanje i vraća vrednost
    }
}

$numbers = numberGenerator(5);

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

?>

Prednosti:

  • Ušteda memorije: Omogućava obradu velikih količina podataka bez njihovog potpunog učitavanja u memoriju.
  • Leno učitavanje: Vrednosti se generišu na zahtev, kada su potrebne.
  • Poboljšanje performansi za određene zadatke, kao što je čitanje velikih fajlova.

Koristi se za iteraciju kroz velike kolekcije, čitanje fajlova red po red, implementaciju beskonačnih sekvenci.