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
}