PHP альтернатива тернарному оператору - PullRequest
5 голосов
/ 26 октября 2011

В JavaScript вы можете использовать следующий код:

var = value || default;

Есть ли в PHP эквивалент, кроме троичного оператора:

$var = ($value) ? $value : $default;

Разница заключается только в том, что нужно писать $value один раз?

Ответы [ 4 ]

16 голосов
/ 26 октября 2011

С php 5.3 $var = $value ?: $default

5 голосов
/ 26 октября 2011
$var = $value or $var = $default;
1 голос
/ 26 октября 2011

Еще один обходной обходной путь (совместимый с пре-5.3):

$var = current(array_filter(array($value, $default, $default2)));

Но это действительно просто целесообразно, если у вас есть несколько возможных значений или значений по умолчанию.(На самом деле не экономит на наборе текста, не компактная синтаксическая альтернатива, просто избегает упоминания $value дважды.)

0 голосов
/ 26 октября 2011

с 5.3 или без 5.3 я бы написал.

$var = 'default';
if ($value) $var = $value;

потому что я ненавижу конструкции только для записи.

...