Ternärer Operator: True-Teil weglassen

k3nguruh

Erfahrenes Mitglied
Hallo,

kann mir vll. jemand sagen ab welcher PHP Version die 2. Anweisung möglich ist:
PHP:
// Nr. 1
$value = $value ? $value : $other;

// Nr. 2
$value = $value ?: $other;

Nr. 1 kann ich auf jeden von mir benutzten Local und Webservern benutzen.
Nr. 2 funktioniert bei mir Local (PHP v5.5.3) aber nicht auf den Webservern.
 
Wenn man sich nicht um Fehler vom Typ "Notice" schert, dann beispielsweise so etwas:
PHP:
$page = $_GET[ 'page' ] ?: 1;
 
Man könnte es anwenden, wenn man überprüfen will, ob eine Variable wahr oder falsch ist, aber die Variable auch null sein kann:
PHP:
$var = null;
# wenn Wert nicht true, dann false; ist aber das gleiche wie !!$var
$var ?: false;

# oder genau das umgekehrte, wobei das immer dazu führt, dass die Variable true ist
$var ?: true;

Ergo heißt das, dass so etwas beispielsweise in JavaScript sinnvoll ist, aber ich persönlich dafür in PHP keinen Nutzen sehe.
 
Zurück