Sobes.tech
Middle

Kā darbojas ģenerators PHP?

sobes.tech AI

Atbilde no AI

Generators ir funkcija, kas atgriež iteratoru. Tas ļauj pārlūkot datu kopu bez visa masīva ielādes atmiņā, izmantojot atslēgas vārdu yield. Katru reizi, kad tiek izsaukts yield, funkcijas izpilde tiek pārtraukta, tiek atgriezta vērtība un saglabāts funkcijas stāvoklis. Nākamajā next() izsaukumā, iteratora izpilde turpinās no vietas, kur tā tika pārtraukta.

<?php

function numberGenerator($limit) {
    for ($i = 1; $i <= $limit; $i++) {
        yield $i; // Pārtrauc izpildi un atgriež vērtību
    }
}

$numbers = numberGenerator(5);

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

?>

Priekšrocības:

  • Atmiņas taupīšana: Ļauj apstrādāt lielus datu apjomus, neielādējot tos pilnībā atmiņā.
  • Lēna ielāde: Vērtības tiek ģenerētas pēc pieprasījuma, kad tās ir nepieciešamas.
  • Veiktspējas uzlabošana dažiem uzdevumiem, piemēram, lielu failu lasīšanai.

Izmanto lielu kolekciju iterācijai, failu rindu pa rindiņai lasīšanai, bezgalīgu secību īstenošanai.