Generators e yield

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

    Introduzione a PHP PHP (PHP: Hypertext Preprocessor) è un linguaggio di scripting server-side usato ...
  • Variabili PHP

    Variabili PHP Le variabili in PHP iniziano sempre con il simbolo dollaro $.Dichiarazione$nome = "Mar...
  • Stringhe in PHP

    Stringhe in PHP Le stringhe sono sequenze di caratteri racchiuse tra virgolette.Virgolette singole v...
  • Array in PHP

    Array in PHP Gli array permettono di memorizzare più valori in una singola variabile.Array indicizza...
  • Operatori PHP

    Operatori PHP Gli operatori PHP permettono di eseguire operazioni su variabili e valori.Operatori ar...