Kodokon kodokon.com

Bedingungen und Schleifen

Lass deine Skripte mit if und match reagieren und wiederhole dann Aktionen mit for, foreach und while.

9 Min. · 3 Fragen

Diese Lektion in Kodokon öffnen

Eine Bedingung lässt das Skript einen Weg wählen: „Wenn das wahr ist, mache dies, sonst mache etwas anderes“. Das Schlüsselwort if prüft einen Ausdruck, der zu true oder false ausgewertet wird, mit den Vergleichsoperatoren: > (größer als), < (kleiner als), >=, <=, === (gleich, gleicher Wert UND gleicher Typ) und !== (ungleich). elseif fügt einen weiteren Test hinzu, wenn der vorherige fehlgeschlagen ist, und else läuft, wenn kein Test erfolgreich war. Die Tests werden von oben nach unten gelesen: Der erste, der wahr ist, gewinnt.

PHP
<?php

$temperature = 12;

if ($temperature > 25) {
    echo "It's hot.";
} elseif ($temperature > 15) {
    echo "It's mild.";
} else {
    echo "Grab a jacket!";
}
Hier läuft nur der else-Block.

Wenn du dieselbe Variable mit mehreren bestimmten Werten vergleichst, ist der Ausdruck match eleganter. Er vergleicht die Variable mit jedem Fall (strenger Vergleich, Wert und Typ) und liefert direkt einen Wert, den du in einer Variable speichern kannst. Der Fall default dient als Auffangnetz, wenn kein Wert passt.

PHP
<?php

$day = "saturday";

$message = match ($day) {
    "saturday", "sunday" => "It's the weekend!",
    "monday" => "Hang in there, back to work.",
    default => "Have a good weekday.",
};

echo $message;
match liefert einen Wert, hier in $message gespeichert.

Eine Schleife wiederholt einen Anweisungsblock mehrmals, ohne den Code zu kopieren. Die Schleife for ist ideal, wenn du die Anzahl der Runden im Voraus kennst. Sie liest sich in drei Teilen, getrennt durch Semikolons: den Start ($i = 1), die Fortsetzungsbedingung ($i <= 5, es geht weiter, solange das wahr ist) und den Schritt ($i++, der bei jeder Runde 1 zu $i addiert).

PHP
<?php

for ($i = 1; $i <= 5; $i++) {
    echo "Round number {$i}<br>";
}
Fünf Runden, von 1 bis einschließlich 5.

Zwei weitere Schleifen vervollständigen den Werkzeugkasten. foreach durchläuft ein Array (eine Liste von Werten, Thema der nächsten Lektion) und reicht dir jedes Element nacheinander. while wiederholt seinen Block, solange seine Bedingung wahr bleibt: Es liegt an dir, die Situation innerhalb der Schleife zu ändern, damit sie irgendwann stoppt.

PHP
<?php

$fruits = ["apple", "pear", "kiwi"];

foreach ($fruits as $fruit) {
    echo "Fruit: {$fruit}<br>";
}

$countdown = 3;

while ($countdown > 0) {
    echo "{$countdown}...<br>";
    $countdown--;
}

echo "Go!";
foreach durchläuft eine Liste, while zählt herunter.

Wissenscheck

Stelle sicher, dass du die wichtigsten Punkte dieser Lektion behalten hast.

  1. Wann läuft der else-Block?
    • Immer, direkt nach dem if-Block
    • Nur wenn keine vorherige Bedingung wahr ist
    • Nur wenn die if-Bedingung wahr ist
  2. Was unterscheidet match unter anderem von if?
    • Es liefert direkt einen Wert
    • Es kann nur Zahlen vergleichen
    • Es führt jeden Fall nacheinander aus
  3. Was passiert, wenn eine while-Bedingung für immer wahr bleibt?
    • Die Schleife stoppt automatisch nach 100 Runden
    • PHP ignoriert die Schleife und macht weiter
    • Die Schleife läuft endlos und blockiert das Skript