Verzweigungen &

Geschätzte Lektüre: 9 Minuten 328 Ansichten

Verzweigungen sind fundamentale Konzepte in der Programmierung, die es ermöglichen, Entscheidungen im Code zu treffen. In PHP gibt es mehrere Möglichkeiten, Verzweigungen zu implementieren.

If-Verzweigungen: Die grundlegende Entscheidung

Was ist eine If-Verzweigung?

Die if-Anweisung ist die einfachste Form der Verzweigung. Sie überprüft eine Bedingung und führt den folgenden Codeblock nur aus, wenn diese Bedingung wahr (true) ist.

Metapher: Stellen Sie sich eine if-Anweisung wie einen Türsteher vor. Nur wenn Sie auf der Gästeliste stehen (Bedingung erfüllt), dürfen Sie in den Club (Codeblock wird ausgeführt).

Syntax:

if (bedingung) {
    // Code, wenn Bedingung wahr
} else {
    // Code, wenn Bedingung nicht wahr
}

Beispiel:

$alter = 18;

if ($alter >= 18) {
    echo "Sie sind volljährig und dürfen diesen Inhalt sehen.";
}

If-Else: Entscheidung mit Alternative

Was ist If-Else?

Die if-else-Struktur erweitert die einfache if-Anweisung um eine Alternative für den Fall, dass die Bedingung nicht erfüllt ist.

Metapher: Wie bei einer Weggabelung – wenn der Hauptweg (if) blockiert ist, nehmen Sie einfach den alternativen Weg (else).

Beispiel:

$wetter = "regnerisch";

if ($wetter == "sonnig") {
    echo "Heute gehen wir in den Park!";
} else {
    echo "Wir bleiben zu Hause und schauen einen Film.";
}

If-Elseif-Else: Mehrere Bedingungen prüfen

Was ist If-Elseif-Else?

Wenn Sie mehrere Bedingungen hintereinander prüfen möchten, können Sie elseif verwenden.

Metapher: Wie ein Multiple-Choice-Test – Sie gehen die Optionen der Reihe nach durch, bis Sie die passende finden.

Beispiel:

$note = 2;

if ($note == 1) {
    echo "Sehr gut!";
} elseif ($note == 2) {
    echo "Gut!";
} elseif ($note == 3) {
    echo "Befriedigend";
} else {
    echo "Andere Note";
}

Schleifensteuerung mit break und continue

break

Beendet eine Schleife sofort.

for ($i = 0; $i < 10; $i++) {
    if ($i == 5) {
        break; // Schleife wird bei 5 abgebrochen
    }
    echo $i . "<br>";
}

continue

Überspringt den aktuellen Durchlauf und springt zum nächsten.

for ($i = 0; $i < 10; $i++) {
    if ($i % 2 == 0) {
        continue; // Überspringt gerade Zahlen
    }
    echo $i . " ist ungerade<br>";
}

Metapher:
break ist wie ein Feueralarm – alles wird sofort gestoppt.
continue ist wie wenn Sie beim Treppensteigen eine Stufe überspringen – Sie gehen einfach zur nächsten.

Wichtige Unterschiede:

StatementWirkungsbereichEffekt
breakSchleifen und switchBeendet die gesamte Struktur
continueNur SchleifenSpringt zum nächsten Schleifendurchlauf

Switch-Case: Die elegante Alternative für viele Bedingungen

Was ist eine Switch-Anweisung?

Die switch-Anweisung ist eine Alternative zu langen if-elseif-Ketten, besonders wenn Sie einen einzelnen Wert gegen mehrere Möglichkeiten prüfen.

Metapher: Stellen Sie sich einen alten Eisenbahn-Weichensteller vor, der den Zug (Programmfluss) auf verschiedene Gleise (Cases) leitet, basierend auf dem Signal (Wert).

Syntax:

switch ($variable) {
    case wert1:
        // Code für wert1
        break;
    case wert2:
        // Code für wert2
        break;
    default:
        // Code, wenn kein Case zutrifft
}

Beispiel:

$wochentag = "Dienstag";

switch ($wochentag) {
    case "Montag":
        echo "Start in die neue Woche!";
        break;
    case "Dienstag":
        echo "Noch vier Tage bis zum Wochenende.";
        break;
    case "Mittwoch":
        echo "Halbzeit!";
        break;
    default:
        echo "Ein normaler Tag.";
}

Wichtiger Hinweis zum break:

Das break-Statement ist entscheidend in switch-Anweisungen. Ohne break würde PHP alle folgenden Cases ausführen (sogenannter „Fall-through“).

Vergleich von If-Else und Switch

KriteriumIf-ElseSwitch
LesbarkeitGut für wenige BedingungenBesser für viele feste Werte
FlexibilitätKann komplexe Bedingungen prüfenPrüft nur auf Gleichheit
PerformanceVergleichbarVergleichbar
Typische VerwendungBereichsprüfungen, komplexe LogikDiskretes Mapping von Werten

Best Practices

  1. Klammern immer setzen: Auch wenn nur eine Anweisung folgt – es erhöht die Lesbarkeit und vermeidet Fehler.
  2. Einrückungen verwenden: Macht den Code übersichtlicher.
  3. Default-Case bei switch: Immer einplanen für unerwartete Werte.
  4. Komplexe Bedingungen vermeiden: Wenn die Bedingung zu lang wird, besser in Variablen auslagern.

Praxisbeispiel: Benutzerrechte prüfen

$benutzerRolle = "editor";

if ($benutzerRolle == "admin") {
    echo "Sie haben vollen Zugriff auf das System.";
} elseif ($benutzerRolle == "editor") {
    echo "Sie können Inhalte bearbeiten, aber keine Einstellungen ändern.";
} elseif ($benutzerRolle == "author") {
    echo "Sie können eigene Beiträge schreiben und bearbeiten.";
} else {
    echo "Sie haben nur Lesezugriff.";
}

// Alternative mit switch
switch ($benutzerRolle) {
    case "admin":
        echo "Sie haben vollen Zugriff auf das System.";
        break;
    case "editor":
        echo "Sie können Inhalte bearbeiten, aber keine Einstellungen ändern.";
        break;
    case "author":
        echo "Sie können eigene Beiträge schreiben und bearbeiten.";
        break;
    default:
        echo "Sie haben nur Lesezugriff.";
}

Rückgrat der Logik

Verzweigungen sind das Rückgrat der Logik in PHP-Programmen. Die if-Anweisung ist Ihr Werkzeug für grundlegende Entscheidungen, während switch eine elegante Lösung für Situationen mit vielen diskreten Werten bietet. Mit diesen Werkzeugen können Sie Ihren Code „intelligent“ machen und auf verschiedene Situationen reagieren lassen.

Übersicht

ElementSyntax-BeispielBeschreibungWann verwenden?Besonderheiten
ifif ($a > $b) { … }Führt Code aus, wenn Bedingung wahr istFür einfache Entweder/Oder-EntscheidungenBasis aller Verzweigungen
elseif ($a) { … } else { … }Alternative Ausführung wenn if-Bedingung nicht zutrifftWenn Sie eine Standardaktion für den „anderen Fall“ brauchenImmer an if angehängt
elseifif ($a) { … } elseif ($b) { … }Zusätzliche Bedingung nach einer if-AnweisungBei mehreren sich ausschließenden BedingungenKann mehrfach verwendet werden
switchswitch ($var) { case ‚a‘: … break; }Vergleicht einen Wert mit mehreren möglichen CasesBei vielen diskreten Werten (z.B. Menüauswahl)break ist meist notwendig
casecase ‚wert‘: … break;Einzelner Vergleichswert in switchFür jeden zu prüfenden Wert in switchOhne break „fällt“ der Code durch
defaultdefault: … break;Standardfall in switch wenn kein Case passtFür unerwartete oder Standard-WerteOptional, aber empfohlen
breakbreak;Beendet switch oder Schleife sofortUm Fall-Through in switch zu verhindern oder Schleifen vorzeitig zu beendenWichtig für switch-Cases
continuecontinue;Springt zum nächsten SchleifendurchlaufUm bestimmte Iterationen in Schleifen zu überspringenNur in Schleifen verwendbar
?: Operator$result = $a ? $b : $c;Kurzform für einfache if-else (ternärer Operator)Für einfache Zuweisungen basierend auf BedingungenGut für lesbare Einzeiler
?? Operator$result = $a ?? $default;Null-Coalescing: Ersten nicht-null Wert nehmenFür Fallback-Werte bei möglichen null-WertenAb PHP 7 verfügbar
Dieses Dokument teilen

Verzweigungen &

Oder Link kopieren

INHALT

Abonnieren

×
Cancel