W3docs

PHP If-Else-Anweisung: Ein umfassender Leitfaden

Lernen Sie PHP if, else und elseif kennen: Bedingungen, Vorlagensyntax, Ternary-Operator und häufige Fehler anschaulich erklärt.

Bedingte Anweisungen ermöglichen es einem Programm, je nach dem, was zum Ausführungszeitpunkt wahr ist, unterschiedliche Wege einzuschlagen. In PHP sind die if-, else- und elseif-Anweisungen die Grundlage dieser Entscheidungslogik. Dieses Kapitel erklärt jede Form, die Bedingungen, die sie steuern, die alternative Vorlagensyntax sowie häufige Fehler, die es zu vermeiden gilt.

Diese Seite behandelt das einfache if, das Hinzufügen eines else-Zweigs, das Verketten von Bedingungen mit elseif, das Verschachteln, die Doppelpunkt-/endif-Vorlagensyntax und die kurze Ternary-Abkürzung.

Die if-Anweisung

Eine if-Anweisung führt einen Codeblock nur dann aus, wenn ihre Bedingung true ergibt. Die Bedingung steht in Klammern; der auszuführende Block steht in geschweiften Klammern.

if (condition) {
  // runs only when condition is true
}

Die Bedingung ist ein beliebiger Ausdruck, den PHP als boolean auswerten kann. Vergleichsoperatoren (>, <, >=, <=, ==, ===, !=) und logische Operatoren (&&, ||, !) sind die üblichen Bausteine — eine vollständige Liste finden Sie unter PHP Operators.

<?php

$temperature = 30;

if ($temperature > 25) {
  echo "It's warm outside.";
}

?>

Da 30 > 25 true ist, gibt dies It's warm outside. aus. Wäre die Bedingung falsch, würde nichts ausgegeben und PHP würde einfach fortfahren.

Einen else-Zweig hinzufügen

else bietet einen Fallback-Block, der ausgeführt wird, wenn die if-Bedingung false ist. Genau einer der beiden Blöcke wird ausgeführt — nie beide, nie keiner.

php— editable, runs on the server

Hier ist $number > 0 wahr, also wird der erste Block ausgeführt und die Ausgabe lautet 5 is a positive number. Wenn $number auf -3 gesetzt würde, würde der erste Block übersprungen und else ausgeführt, was -3 is a negative number ausgibt.

Achtung beim Operator. = weist einen Wert zu, während == vergleicht. Das Schreiben von if ($number = 0) setzt $number stillschweigend auf 0 und wird als false behandelt — ein klassischer Fehler. Verwenden Sie == (oder das strikte ===, das auch den Typ prüft) für Vergleiche.

Mehrere Bedingungen mit elseif prüfen

Wenn es mehr als zwei mögliche Ergebnisse gibt, können Bedingungen mit elseif verkettet werden. PHP prüft jede Bedingung der Reihe nach und führt die erste aus, die wahr ist; wenn keine übereinstimmt, wird das optionale else ausgeführt.

php— editable, runs on the server

Mit $number = 0 ist die erste Bedingung (> 0) falsch, also geht PHP zum elseif (== 0) über, das wahr ist, und gibt 0 is zero aus. Sobald ein Zweig übereinstimmt, wird der Rest der Kette übersprungen — die Reihenfolge ist wichtig, also sollten die spezifischsten Bedingungen zuerst stehen.

Sie können so viele elseif-Zweige hinzufügen, wie Sie benötigen. Wenn ein einzelner Wert mit vielen festen Optionen verglichen wird, ist eine switch-Anweisung oft übersichtlicher als eine lange elseif-Kette.

if-Anweisungen verschachteln

Ein if-Block kann ein weiteres if enthalten, um Entscheidungen zu treffen, die von einer vorherigen abhängen. Halten Sie die Verschachtelung flach — mehr als zwei oder drei Ebenen signalisieren in der Regel, dass die Logik in Funktionen aufgeteilt werden sollte.

<?php

$number = 5;

if ($number > 0) {
  if ($number % 2 == 0) {
    echo "$number is a positive even number";
  } else {
    echo "$number is a positive odd number";
  }
} else {
  echo "$number is not positive";
}

?>

Das äußere if bestätigt, dass die Zahl positiv ist; das innere if prüft dann, ob sie gerade ist ($number % 2 == 0). Da 5 positiv und ungerade ist, lautet die Ausgabe 5 is a positive odd number.

Alternative (Doppelpunkt-)Syntax

PHP bietet auch eine auf Doppelpunkten basierende Form, die mit endif endet. Sie liest sich gut, wenn Bedingungen HTML in Vorlagen umschließen, wo nicht übereinstimmende geschweifte Klammern leicht verloren gehen.

<?php $loggedIn = true; ?>

<?php if ($loggedIn): ?>
  <p>Welcome back!</p>
<?php else: ?>
  <p>Please sign in.</p>
<?php endif; ?>

Das Verhalten ist identisch mit der Klammer-Form — if (...): ersetzt if (...) {, und endif; ersetzt die schließende }.

Die Ternary-Abkürzung

Für eine einfache Entweder-Oder-Zuweisung verdichtet der Ternary-Operator ?: ein if/else in einen einzigen Ausdruck: Bedingung ? Wert_wenn_wahr : Wert_wenn_falsch.

<?php

$age = 20;
$status = ($age >= 18) ? "adult" : "minor";

echo $status; // adult

?>

Dies entspricht einem vierzeiligen if/else-Block. Verwenden Sie ihn nur bei kurzen Bedingungen; verschachtelte Ternary-Ausdrücke werden schnell unleserlich.

Zusammenfassung

  • if führt einen Block aus, wenn seine Bedingung wahr ist; else liefert den Fallback.
  • elseif verkettet weitere Bedingungen, und der erste wahre Zweig gewinnt.
  • if-Anweisungen können verschachtelt werden, aber die Verschachtelung sollte flach bleiben.
  • Die Doppelpunkt-/endif-Syntax ist praktisch in HTML-Vorlagen, und der Ternary-Operator ?: verkürzt einfache Entweder-Oder-Entscheidungen.
  • Verwenden Sie immer ==/=== für Vergleiche, nicht die Zuweisung =.

Als Nächstes können Sie PHP-Schleifen erkunden, um Code zu wiederholen, solange eine Bedingung gilt, und PHP-Variablen für die Werte, die Ihre Bedingungen prüfen, durchsehen.

Practice

Übung
Wie können bedingte Anweisungen in PHP implementiert werden?
Wie können bedingte Anweisungen in PHP implementiert werden?
Was this page helpful?