Sobes.tech
Middle

Hoe werkt een generator in PHP?

sobes.tech AI

Antwoord van AI

Een generator is een functie die een iterator teruggeeft. Het stelt je in staat om een dataset te doorlopen zonder de hele array in het geheugen te laden, door gebruik te maken van het sleutelwoord yield. Bij elke aanroep van yield wordt de uitvoering van de functie gepauzeerd, wordt een waarde geretourneerd en wordt de staat van de functie opgeslagen. Bij de volgende aanroep van next(), wordt de uitvoering van de iterator hervat vanaf waar deze was gestopt.

<?php

function numberGenerator($limit) {
    for ($i = 1; $i <= $limit; $i++) {
        yield $i; // Pauzeert de uitvoering en geeft de waarde terug
    }
}

$numbers = numberGenerator(5);

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

?>

Voordelen:

  • Geheugenspaargeld: Maakt het mogelijk om grote hoeveelheden data te verwerken zonder ze volledig in het geheugen te laden.
  • Lui laden: Waarden worden op aanvraag gegenereerd, wanneer ze nodig zijn.
  • Verbeterde prestaties voor bepaalde taken, zoals het lezen van grote bestanden.

Gebruikt voor iteratie over grote collecties, regel-voor-regel lezen van bestanden, implementatie van oneindige sequenties.