Generators e yield

I generators permettono di iterare su grandi dataset senza caricare tutto in memoria.

Base

function countTo($max) {
    for ($i = 1; $i <= $max; $i++) {
        yield $i;
    }
}

foreach (countTo(1000000) as $num) {
    echo $num;
    // Usa poca memoria!
}

yield con chiavi

function getUsers() {
    yield 1 => "Mario";
    yield 2 => "Luigi";
    yield 3 => "Peach";
}

Leggere file grandi

function readLines($file) {
    $handle = fopen($file, "r");
    while (($line = fgets($handle)) !== false) {
        yield trim($line);
    }
    fclose($handle);
}

foreach (readLines("huge_file.txt") as $line) {
    process($line);
}

Hai trovato utile quest'articolo?

  • Introduzione a PHP

    PHP (PHP: Hypertext Preprocessor) è un linguaggio di scripting server-side usato per lo sviluppo web...
  • Variabili PHP

    Le variabili in PHP iniziano sempre con il simbolo dollaro $.Dichiarazione$nome = "Mario"; $eta = 30...
  • Stringhe in PHP

    Le stringhe sono sequenze di caratteri racchiuse tra virgolette.Virgolette singole vs doppie$nome = ...
  • Array in PHP

    Gli array permettono di memorizzare più valori in una singola variabile.Array indicizzati$frutti = [...
  • Operatori PHP

    Gli operatori PHP permettono di eseguire operazioni su variabili e valori.Operatori aritmetici$a + $...