Sobes.tech
Middle

Ako funguje generátor v PHP?

sobes.tech AI

Odpoveď od AI

Generator je funkcia, ktorá vracia iterátor. Umožňuje prechádzať dátový súbor bez načítania celého poľa do pamäte, pomocou kľúčového slova yield. Pri každom volaní yield sa vykonávanie funkcie pozastaví, vráti sa hodnota a zachová sa stav funkcie. Pri ďalšom volaní next() pokračuje vykonávanie iterátora od miesta, kde bolo prerušené.

<?php

function numberGenerator($limit) {
    for ($i = 1; $i <= $limit; $i++) {
        yield $i; // Pozastaví vykonávanie a vráti hodnotu
    }
}

$numbers = numberGenerator(5);

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

?>

Výhody:

  • Úspora pamäte: Umožňuje spracovanie veľkých objemov dát bez ich úplného načítania do pamäte.
  • Lenivé načítanie: Hodnoty sa generujú na požiadanie, keď sú potrebné.
  • Zlepšenie výkonu pre určité úlohy, ako je čítanie veľkých súborov.

Používa sa na iteráciu veľkých kolekcií, čítanie súborov riadok po riadku, implementáciu nekonečných sekvencií.