@yellow_pus

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

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

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

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

Войти через центр авторизации
Похожие вопросы
03 дек. 2021, в 19:29
2500 руб./за проект
03 дек. 2021, в 19:20
5000 руб./за проект
03 дек. 2021, в 19:19
50000 руб./за проект