PHP Shortand If: In PHP gibt es eine spezielle, verkürzte Schreibweise für einfache if-else
-Anweisungen, bekannt als Kurzform-if
, die es erlaubt, Entscheidungen kompakt und leserlich darzustellen. Es gibt zwei Hauptmethoden zur Verkürzung der if
-Syntax: den ternären Operator (?:
) und den Null-Koaleszenz-Operator (??
). Diese Formen werden häufig verwendet, wenn nur eine einfache Bedingung geprüft werden soll und die Ausgaben überschaubar sind.
Ternärer Operator ?:
Der ternäre Operator ist eine Kurzform für einfache if-else
-Entscheidungen und hat die Syntax:
<?php
$variable = (Bedingung) ? Wert_wenn_true : Wert_wenn_false;
?>
Wenn die Bedingung true
ist, wird der erste Wert zurückgegeben; andernfalls der zweite. Der ternäre Operator wird häufig verwendet, um kompakte Bedingungen innerhalb einer Zuweisung oder Ausgabe zu formulieren.
Beispiel für den ternären Operator
<?php
$alter = 20;
$zugang = ($alter >= 18) ? "Zugang erlaubt" : "Zugang verweigert";
echo $zugang; // Ausgabe: Zugang erlaubt
?>
Hier wird Zugang erlaubt
zugewiesen, da die Bedingung $alter >= 18
true
ist.
Kurzform des Ternären Operators (Elvis-Operator ?:)
In PHP kann der ternäre Operator weiter verkürzt werden, wenn derselbe Wert sowohl für die Prüfung als auch für die Rückgabe verwendet wird. Diese Variante wird manchmal auch Elvis-Operator genannt.
<?php
$ergebnis = $variable ?: "Standardwert";
?>
Falls $variable
existiert und true
ergibt, wird sie selbst zurückgegeben. Ist $variable
jedoch false
oder nicht gesetzt, wird der Standardwert "Standardwert"
zurückgegeben.
Beispiel für den Elvis-Operator
<?php
$name = "";
$benutzername = $name ?: "Gast";
echo $benutzername; // Ausgabe: Gast
?>
Da $name
leer ist, wird "Gast"
als Ersatzwert verwendet.
Null-Koaleszenz-Operator ??
Der Null-Koaleszenz-Operator (??
) ist besonders nützlich, wenn es darum geht, einen Wert zu verwenden, falls dieser definiert ist, oder einen Fallback-Wert zu setzen, falls nicht. Diese Schreibweise wird oft eingesetzt, um zu prüfen, ob Variablen oder Array-Schlüssel definiert sind, bevor sie genutzt werden.
Syntax des Null-Koaleszenz-Operators
<?php
$variable = $variable1 ?? $fallback;
?>
Hier wird $variable1
verwendet, falls sie definiert ist und nicht null
ist. Andernfalls wird der Wert $fallback
verwendet.
Beispiel für den Null-Koaleszenz-Operator
<?php
$benutzer = $_GET['benutzer'] ?? "Unbekannt";
echo "Hallo, " . $benutzer; // Gibt "Hallo, Unbekannt" aus, wenn "benutzer" nicht gesetzt ist
?>
Falls der $_GET['benutzer']
-Parameter fehlt, wird "Unbekannt"
als Standardwert ausgegeben.
Anwendungsfälle und Best Practices
- Ternärer Operator: Verwenden Sie den ternären Operator für kurze Bedingungen und direkte Zuweisungen oder Ausgaben. Ideal für einfache Entscheidungen in einer Zeile.
- Elvis-Operator: Dieser ist nützlich, wenn Sie einen Wert zurückgeben wollen, sofern dieser
true
ergibt, oder andernfalls einen Standardwert. - Null-Koaleszenz-Operator: Der Null-Koaleszenz-Operator ist ideal für das Setzen von Standardwerten und das Arbeiten mit Variablen, die möglicherweise undefiniert oder
null
sind.
Häufig gestellte Fragen
Kann ich den ternären und Null-Koaleszenz-Operator kombinieren?
Ja, Sie können sie kombinieren, um komplexe Bedingungen zu vereinfachen. Achten Sie jedoch auf die Lesbarkeit, wenn die Logik zu umfangreich wird.
Wann sollte ich den Elvis-Operator anstelle des Null-Koaleszenz-Operators verwenden?
Der Elvis-Operator ist sinnvoll, wenn Sie nur true
-artige Werte akzeptieren. Der Null-Koaleszenz-Operator eignet sich besser, wenn Sie überprüfen möchten, ob ein Wert definiert ist und null
ausgeschlossen werden soll.
Ist der ternäre Operator effizienter als eine if-else-Struktur?
Beide sind hinsichtlich Leistung vergleichbar. Der ternäre Operator wird jedoch bevorzugt, um den Code bei einfachen Bedingungen kompakter zu gestalten.