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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽