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.