Kurzform zum setzen von Standardwerten in PHP

In JavaScript (seit ES2015 nicht mehr nötig) ist es möglich einen Standardwert per logischem Operator zu setzen:

var myValue = value1 || value2;

myValue nimmt den Wert an der zum booleschen Wert true evaluiert werden kann. Seit PHP 5.3 ist dies ähnlich möglich, mit der alternativen Syntax für Vergleichs-Kontrollstrukturen (if / else), dem Trinitäts-Operator. Von der offiziellen PHP-Website:

Since PHP 5.3, it is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.

Also kann man durch:

$myValue = $value1 ?: $value2;

in PHP das selbe erreichen wie mit dem JavaScript-Beispiel, das der erste wahre Wert für $myValue referenziert wird.

Beispiel

Hier ein kleines schnelles Beispiel wo diese Technik Verwendung finden kann:

$user = new User();
$username = $user->getName() ?: 'Unbekannter Benutzer';

Um nicht extra per if/else prüfen zu müssen ob ein Benutzername gesetzt ist, könnte man auf diese Art einfach einen Standard setzen.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.