1. Home
  2. Docs
  3. PHP
  4. PHP If Else Elseif
  5. PHP Shortand If

PHP Shortand If

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.