Kontrollstrukturen

Geschätzte Lektüre: 9 Minuten 389 Ansichten

Kontrollstrukturen sind fundamentale Bausteine jeder Programmiersprache, auch in PHP. Sie ermöglichen es, den Ablauf eines Programms zu steuern und Entscheidungen zu treffen.

Metapher: Stellen Sie sich Kontrollstrukturen wie Verkehrsschilder vor. Ein Stopp-Schild (wie eine if-Bedingung) sagt Ihnen, ob Sie weiterfahren dürfen oder nicht. Eine Kreuzung mit mehreren Abzweigungen ähnelt einer switch-Anweisung, wo Sie je nach Straßenschild (Bedingung) eine andere Route wählen.

Bedingte Anweisungen (Verzweigungen)

if-Anweisung

Die einfachste Form der Entscheidungsfindung in PHP.

$alter = 18;

if ($alter >= 18) {
    echo "Sie sind volljährig.";
}

Erklärung: Wenn die Bedingung in den Klammern ($alter >= 18) wahr (true) ist, wird der Code in den geschweiften Klammern ausgeführt.

if-else-Anweisung

Erweitert die if-Anweisung um eine Alternative.

$temperatur = 15;

if ($temperatur > 20) {
    echo "Es ist warm. T-Shirt Wetter!";
} else {
    echo "Ziehen Sie sich lieber etwas wärmer an.";
}

Metapher: Wie eine Weiche bei der Eisenbahn – je nach Zustand (Bedingung) wird der Zug (Programmfluss) auf das eine oder andere Gleis geleitet.

if-elseif-else-Anweisung

Für mehrere Bedingungen.

$note = 2;

if ($note == 1) {
    echo "Sehr gut!";
} elseif ($note == 2) {
    echo "Gut!";
} elseif ($note == 3) {
    echo "Befriedigend";
} else {
    echo "Leider nicht bestanden oder ungültige Note";
}

Kurzform (ternärer Operator)

Für einfache Bedingungen.

$istMitglied = true;
$beitrag = $istMitglied ? 50 : 100;

echo "Der Beitrag beträgt: " . $beitrag . " Euro";

Erklärung: Wenn $istMitglied true ist, wird 50 zugewiesen, sonst 100.

Switch-Anweisung

Für viele alternative Bedingungen, die einen einzelnen Wert überprüfen.

$wochentag = "Dienstag";

switch ($wochentag) {
    case "Montag":
        echo "Wochenstart!";
        break;
    case "Dienstag":
        echo "Noch vier Tage bis zum Wochenende!";
        break;
    case "Mittwoch":
        echo "Hump day!";
        break;
    case "Freitag":
        echo "Fast Wochenende!";
        break;
    default:
        echo "Ein normaler Tag";
}

Wichtig: Das break verhindert, dass die folgenden Fälle auch ausgeführt werden. Ohne break würde PHP alle folgenden Fälle ausführen („Durchfallen“).

Metapher: Wie ein alter Fahrstuhl mit mehreren Stockwerken (cases). Der break ist wie das Anhalten im gewünschten Stockwerk. Ohne break würde der Fahrstuhl durch alle Stockwerke bis zum Ende durchfahren.

Schleifen (Loops)

while-Schleife

Führt Code aus, solange eine Bedingung wahr ist.

$counter = 1;

while ($counter <= 5) {
    echo "Durchlauf Nummer: " . $counter . "<br>";
    $counter++;
}

Metapher: Wie wenn Sie ein Glas Wasser trinken – Sie nehmen immer wieder einen Schluck (Code wird ausgeführt), bis das Glas leer ist (Bedingung ist nicht mehr erfüllt).

do-while-Schleife

Ähnlich wie while, aber der Code wird mindestens einmal ausgeführt.

$zahl = 10;

do {
    echo "Die Zahl ist: " . $zahl . "<br>";
    $zahl++;
} while ($zahl <= 5);

Erklärung: Obwohl die Bedingung von Anfang an falsch ist, wird der Code einmal ausgeführt.

for-Schleife

Kompakte Form für Schleifen mit Zähler.

for ($i = 0; $i < 5; $i++) {
    echo "Aktueller Wert von i: " . $i . "<br>";
}

Bestandteile:
• Initialisierung ($i = 0)
• Bedingung ($i < 5)
• In-/Dekrement ($i++)

Metapher: Wie ein Countdown bei einer Rakete:
• Sie setzen den Startwert (Initialisierung)
• Definieren den Endpunkt (Bedingung)
• Legen fest, wie der Countdown fortschreitet (Inkrement)

foreach-Schleife

Speziell für Arrays.

$farben = ["Rot", "Grün", "Blau", "Gelb"];

foreach ($farben as $farbe) {
    echo "Aktuelle Farbe: " . $farbe . "<br>";
}

Mit Schlüssel-Wert-Paaren:

$person = [
    "name" => "Max",
    "alter" => 30,
    "stadt" => "Berlin"
];

foreach ($person as $key => $value) {
    echo ucfirst($key) . ": " . $value . "<br>";
}

Metapher: Wie wenn Sie eine Schublade mit verschiedenen Gegenständen durchgehen – Sie nehmen nacheinander jedes Element heraus (Variable $farbe) und betrachten es.

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.

Alternative Syntax

PHP bietet eine alternative Syntax für Kontrollstrukturen, besonders nützlich bei der Einbettung in HTML.

<?php if ($alter >= 18): ?>
    <p>Sie sind volljährig und dürfen diese Seite sehen.</p>
<?php else: ?>
    <p>Sie sind noch nicht volljährig.</p>
<?php endif; ?>

Diese Syntax wird oft in Templates verwendet, da sie besser lesbar ist, wenn PHP-Code mit HTML gemischt wird.

Praktisches Beispiel: Benutzerprüfung

$benutzer = [
    "name" => "Anna",
    "alter" => 22,
    "mitglied" => true,
    "punkte" => 45
];

if ($benutzer["alter"] < 18) {
    echo "Zugriff verweigert: Zu jung!";
} elseif (!$benutzer["mitglied"]) {
    echo "Bitte werden Sie erst Mitglied!";
} else {
    switch (true) {
        case ($benutzer["punkte"] > 50):
            echo "Premium-Zugang!";
            break;
        case ($benutzer["punkte"] > 20):
            echo "Standard-Zugang";
            break;
        default:
            echo "Basis-Zugang";
    }
}

Best Practices

  1. Klammern immer setzen – Auch wenn sie bei einzelnen Anweisungen optional sind, machen sie den Code lesbarer.
  2. Einrückungen verwenden – Verbessert die Lesbarkeit von verschachtelten Strukturen.
  3. Komplexe Bedingungen vermeiden – Bei zu komplexen Bedingungen besser in separate Variablen oder Funktionen auslagern.
  4. Default-Case bei switch – Immer einen default-Case einplanen für unerwartete Werte.
  5. Endlosschleifen vermeiden – Immer sicherstellen, dass Schleifenbedingungen irgendwann false werden.

Rückgrat der Programmierung

Kontrollstrukturen sind das Rückgrat der Programmierung in PHP. Sie ermöglichen es, Entscheidungen zu treffen und Code effizient zu wiederholen. Mit if/else treffen Sie Entscheidungen, mit Schleifen wiederholen Sie Aufgaben, und mit break/continue können Sie den Ablauf präzise steuern.

Metapher: Kontrollstrukturen sind wie die Regieanweisungen in einem Theaterstück – sie sagen den Schauspielern (Ihrem Code), wann sie auftreten, was sie sagen sollen und wie oft sie ihre Handlung wiederholen müssen, um das gewünschte Ergebnis (Ihr Programm) zu erzielen.

Dieses Dokument teilen

Kontrollstrukturen

Oder Link kopieren

INHALT

Abonnieren

×
Cancel