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