Задать вопрос
@yellow_pus

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

Почему в тернарных операторах вместо ?: иногда используется ??, например: $test = $action ?? 'catalog'; но код работает точно так же, если написать $test = $action ?: 'catalog';. Чем они отличаются и влияет ли это на что либо?
  • Вопрос задан
  • 320 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 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
Потомок старинного рода Ипатьевых-Колотитьевых
Надо включить информирование об ошибках.
Тогда сразу станет видно, что код работает не точно так же
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 14:07
15000 руб./за проект
22 дек. 2024, в 13:01
50000 руб./за проект
22 дек. 2024, в 10:44
15000 руб./за проект