Если Вы, как и я много программируете в php, то я уверен Вас эта находка весьма займет.

Как мы обычно делаем, если надо реализовать такую логику:

if ($a) {
 $b = $a;
} else {
 $b = $c;
}

чтобы не плодить if-else блоков, мы делаем так

$b = $a ? $a : $c;

Где-то я читал что подобная конструкция не читабельна, но она очень удобна. Я так и пишу, смущает разве повторение оператора $a. Если это переменная то черт с ней, но если это какой-то метод или функция, то получается два вывода. Что совсем не гуд.

В JS есть удобная конструкция на этот случай

var b = a || c;

Если a отлично от false, то в b будет записано оно, если нет то с. В php такое не сработает. Там в $b запишется результат логического сравнения.

Но оказывается в PHP есть аналогичная конструкция

$b = $a ?: $c;

Та дааам! Получите и распишитесь. Кто бы знал.

Оставлять комментарии могут только зарегистрированные пользователи