Sobes.tech
Middle

Jak funguje generátor v PHP?

sobes.tech AI

Odpověď od AI

Generátor je funkce, která vrací iterátor. Umožňuje procházet datovou sadu bez načítání celého pole do paměti, pomocí klíčového slova yield. Při každém volání yield se provádění funkce pozastaví, vrátí se hodnota a zachová se stav funkce. Při dalším volání next() pokračuje provádění iterátoru od místa, kde bylo přerušeno.

<?php

function numberGenerator($limit) {
    for ($i = 1; $i <= $limit; $i++) {
        yield $i; // Pozastaví provádění a vrátí hodnotu
    }
}

$numbers = numberGenerator(5);

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

?>

Výhody:

  • Úspora paměti: Umožňuje zpracovávat velké objemy dat, aniž by je bylo nutné plně načíst do paměti.
  • Líné načítání: Hodnoty jsou generovány na požádání, když jsou potřeba.
  • Zlepšení výkonu pro určité úkoly, například čtení velkých souborů.

Používá se pro iteraci přes velké kolekce, čtení souborů řádek po řádku, implementaci nekonečných sekvencí.