Start · Sprachen · PHP · Referenz · Generator

Generator

Konzept

Funktion, die schrittweise Werte per <code>yield</code> produziert — statt alle im Speicher zu bauen.

seit PHP 5.5.0 Kategorie: oop

Signatur

function foo(): Generator { yield $value; }

Beschreibung

Perfekt für Streams, Millionen-Zeilen-CSVs, unendliche Sequenzen.

Rückgabewert

Typ
Generator

Beispiele

CSV zeilenweise

<?php

function readCsv(string $path): Generator {
    $fh = fopen($path, 'r');
    while (($row = fgetcsv($fh)) !== false) {
        yield $row;
    }
    fclose($fh);
}

foreach (readCsv('gross.csv') as $row) { /* je 1 Zeile im Speicher */ }