@yellow_pus

Тернарный оператор, ?? вместо ?:, зачем?

Почему в тернарных операторах вместо ?: иногда используется ??, например: $test = $action ?? 'catalog'; но код работает точно так же, если написать $test = $action ?: 'catalog';. Чем они отличаются и влияет ли это на что либо?
  • Вопрос задан
  • 312 просмотров
Решения вопроса 2
@Everybody_Lies
//Null-коалесцентный оператор нужен когда переменная может быть не определена, дабы не делать проверку на isset
$bar = $foo ?? 'default';   //default
$bar = $foo ?: 'default';   // Undefined variable $foo
Ответ написан
Комментировать
@Flying
Это совсем разные вещи.

?? - это null coalescing operator
?: - это ternary operator с первым выражением, эквивалентным выражению в левой части оператора.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Надо включить информирование об ошибках.
Тогда сразу станет видно, что код работает не точно так же
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы