if
Das Schlüsselwort "if" wird in PHP verwendet, um Code bedingt auszuführen. In diesem Artikel werden Syntax und Verwendung des "if"-Statements erläutert.
Die PHP if-Anweisung
Die if-Anweisung ist der Weg, auf dem ein PHP-Programm Entscheidungen trifft. Sie führt einen Codeblock nur dann aus, wenn eine Bedingung wahr ist, und überspringt ihn andernfalls. Ohne sie würde ein Skript jede Zeile von oben nach unten ausführen, ohne die Möglichkeit zu verzweigen — if ist die Grundlage aller bedingten Logik in PHP.
Dieser Leitfaden behandelt die Syntax, wie PHP entscheidet, ob eine Bedingung „wahr" ist, die else/elseif-Familie, die alternative endif-Syntax für Templates, Abkürzungen wie den ternären und den Null-Koaleszenz-Operator sowie die Fehler, über die Anfänger stolpern.
Grundlegende Syntax
if (condition) {
// code that runs only when condition is true
}Die condition ist ein beliebiger Ausdruck, den PHP zu wahr oder falsch auswerten kann. Ist er wahr, wird der Code in den geschweiften Klammern ausgeführt; ist er falsch, überspringt PHP den Block und fährt danach fort.
<?php
$age = 20;
if ($age >= 18) {
echo "You are an adult.";
}
// Output: You are an adult.Die Klammern sind optional, wenn der Rumpf aus einer einzigen Anweisung besteht, aber verwenden Sie sie immer — das Weglassen von Klammern ist eine häufige Fehlerquelle, da nur die erste Anweisung als Rumpf behandelt wird:
if ($age >= 18)
echo "Adult"; // runs conditionally
echo " — welcome"; // ⚠️ runs ALWAYS, it is not part of the ifWie PHP Bedingungen auswertet (truthy und falsy)
Eine Bedingung muss kein wörtliches true/false sein — PHP konvertiert jeden Wert in einen boolean. Diese Werte sind falsy (werden als falsch behandelt):
false0und0.0""(leere Zeichenkette) und"0"null- ein leeres Array
[]
Jeder andere Wert ist truthy. Damit können Sie kompakte Überprüfungen schreiben:
<?php
$name = "";
if ($name) {
echo "Hello, $name";
} else {
echo "No name provided."; // empty string is falsy
}
// Output: No name provided.Um Bedingungen zu formulieren, verwenden Sie typischerweise Vergleichs- und logische Operatoren. Eine vollständige Liste finden Sie unter PHP Operators.
<?php
$temp = 30;
if ($temp > 25 && $temp < 35) { // logical AND
echo "Warm but comfortable.";
}
// Output: Warm but comfortable.else und elseif hinzufügen
if allein behandelt einen einzigen Pfad. Um einen Fallback bereitzustellen, fügen Sie else hinzu; um mehrere Bedingungen der Reihe nach zu prüfen, verketten Sie elseif:
<?php
$score = 72;
if ($score >= 90) {
echo "Grade: A";
} elseif ($score >= 70) {
echo "Grade: B";
} elseif ($score >= 50) {
echo "Grade: C";
} else {
echo "Grade: F";
}
// Output: Grade: BPHP prüft jede Bedingung von oben nach unten und führt den ersten Block aus, dessen Bedingung wahr ist, und stoppt dann. Da $score 72 ist, schlägt der Test >= 90 fehl, >= 70 trifft zu, und der Rest wird übersprungen.
Gesonderte Kapitel dazu finden Sie unter PHP else, PHP elseif und der kombinierten if...elseif...else-Anleitung. Wenn Sie viele feste Werte mit einer Variablen vergleichen, ist eine switch-Anweisung oft übersichtlicher.
if-Anweisungen verschachteln
Sie können ein if in ein anderes einbetten, um eine zweite Bedingung nur dann zu prüfen, wenn die erste erfüllt wurde:
<?php
$loggedIn = true;
$role = "admin";
if ($loggedIn) {
if ($role === "admin") {
echo "Welcome to the admin panel.";
} else {
echo "Welcome back.";
}
}
// Output: Welcome to the admin panel.Tiefes Verschachteln beeinträchtigt die Lesbarkeit — wenn Sie sich drei Ebenen tief befinden, erwägen Sie, Bedingungen mit && zu kombinieren oder frühzeitig zurückzukehren.
Alternative Syntax (if: / endif)
Beim Mischen von PHP und HTML in Templates ist die Doppelpunkt-und-endif-Form leichter zu lesen als verstreute geschweifte Klammern:
<?php if ($loggedIn): ?>
<p>Welcome back!</p>
<?php else: ?>
<p>Please log in.</p>
<?php endif; ?>Dies verhält sich genau wie die Klammerversion; es ist rein eine stilistische Frage für View-Dateien.
Kurzform: ternärer und Null-Koaleszenz-Operator
Für einfache „entweder/oder"-Zuweisungen verdichtet der ternäre Operator ein if/else auf eine Zeile:
<?php
$age = 16;
$status = ($age >= 18) ? "adult" : "minor";
echo $status;
// Output: minorWenn es Ihnen nur darum geht, ob ein Wert vorhanden (und nicht null) ist, ist der Null-Koaleszenz-Operator ?? sauberer als ein if (isset(...)):
<?php
$config = [];
$timeout = $config["timeout"] ?? 30; // use 30 if the key is missing
echo $timeout;
// Output: 30Ausführliche Beispiele
<?php
// Example 1
$num = 10;
if ($num > 5) {
echo "The number is greater than 5." . PHP_EOL;
}
// Output: The number is greater than 5.
// Example 2
$color = "red";
if ($color == "blue") {
echo "The color is blue.";
} else {
echo "The color is not blue.";
}
// Output: The color is not blue.Häufige Fehler
=statt==.if ($x = 5)weist 5 an$xzu und ist immer truthy. Verwenden Sie==(lose) oder===(streng, ohne Typumwandlung) zum Vergleichen.==vs.===. Mit==können0 == "hello"und"1" == 1überraschen, da PHP Typen konvertiert. Bevorzugen Sie===, wenn die Typen übereinstimmen sollen.- Fehlende Klammern um einen mehrzeiligen Rumpf — nur die erste Anweisung ist bedingt.
- Truthy-Werte verwechseln.
if ($value)ist falsch für0,""und[]; verwenden Sieisset()oder=== null, wenn Sie gezielt meinen „existiert das".
Fazit
Die if-Anweisung ermöglicht es einem PHP-Programm, zur Laufzeit zu entscheiden, was zu tun ist. Beherrschen Sie die Truthy/Falsy-Regeln, greifen Sie auf elseif/else zurück, um mehrere Pfade zu behandeln, verwenden Sie die alternative endif-Syntax in Templates, und nutzen Sie den ternären und den ??-Operator für prägnante Zuweisungen. Von hier aus erkunden Sie PHP-Schleifen zum Wiederholen von Aktionen und die switch-Anweisung für wertbasiertes Verzweigen.