Start · Sprachen · PHP · Kapitel · Schleifen
// Kapitel · PHP

Schleifen

for, foreach, while, do-while und Generatoren für Memory-effiziente Iteration.

for

for ($i = 0; $i < 10; $i++) {
    echo $i;
}

foreach — die häufigste Schleife in PHP

$users = ['Anna', 'Ben', 'Clara'];

foreach ($users as $user) {
    echo $user;
}

// Mit Index:
foreach ($users as $i => $user) {
    echo "$i: $user";
}

// Assoziatives Array:
$prices = ['brot' => 3.50, 'milch' => 1.20];
foreach ($prices as $produkt => $preis) {
    echo "$produkt kostet $preis €\n";
}

while & do-while

while ($queue->hasJobs()) {
    $queue->processNext();
}

do {
    $eingabe = readline('Fortfahren? (j/n) ');
} while ($eingabe !== 'n');

break & continue

foreach ($items as $item) {
    if ($item->deleted) continue;      // überspringen
    if ($item->critical) break;        // Schleife verlassen
    process($item);
}

Generatoren mit yield — Memory-effizient

Wenn du Millionen Zeilen aus einer Datei liest, ist ein Array-Return ein Speicher-Problem. Generatoren produzieren Werte on-demand:

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

foreach (readCsv('gross.csv') as $row) {
    // verarbeitet 1 Zeile nach der anderen, egal wie groß die Datei
}