Sobes.tech
Middle

Hogyan működik egy generátor PHP-ben?

sobes.tech MI

Válasz az MI-től

A generátor egy olyan függvény, amely egy iterátort ad vissza. Lehetővé teszi adathalmazok bejárását anélkül, hogy az egész tömböt memóriába töltenénk, a yield kulcsszó használatával. Minden yield hívásakor a függvény végrehajtása megszakad, egy érték kerül visszaadásra, és a függvény állapota megmarad. A következő next() hívásakor az iterátor folytatódik ott, ahol abbamaradt.

<?php

function numberGenerator($limit) {
    for ($i = 1; $i <= $limit; $i++) {
        yield $i; // A végrehajtás megszakítása és az érték visszaadása
    }
}

$numbers = numberGenerator(5);

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

?>

Előnyök:

  • Memória megtakarítás: Lehetővé teszi nagy adatmennyiségek feldolgozását anélkül, hogy azokat teljes egészében betöltenénk a memóriába.
  • Lusta betöltés: Az értékek kérésre generálódnak, amikor szükség van rájuk.
  • Teljesítményjavítás bizonyos feladatoknál, például nagy fájlok olvasásánál.

Használják nagy kollekciók bejárására, fájlok soronkénti olvasására, végtelen szekvenciák megvalósítására.