@awenn2015
Веб-программист самоучка

Почему использование оператора '??' убирает ошибку об неопределенной переменной?

По мне так странное поведение, по логике оно должно обезопасить от index offset в массиве а не скрывать не определенные переменные

// Вжух и больше нет ошибок в ide
var_dump($undefined ?? null);


Этож бред какой то, такими темпами можно где то поменять название переменной а тут даже ошибки не будет никакой, просто null, как можно отключить такое поведение?
  • Вопрос задан
  • 122 просмотра
Решения вопроса 2
@maksam07
Расценивай это как
isset($undefined) ? $undefined : null;
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
The null coalescing operator (??) has been added as syntactic sugar for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not null; otherwise it returns its second operand.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Vitsliputsli
По мне так странное поведение, по логике оно должно обезопасить от index offset в массиве а не скрывать не определенные переменные

Что в php, что в js, он делает одно и тоже, а именно проверяет, что левое выражение определено и отлично от null. Только вот в js, неопределено undefined бывает 2х видов, одно вызывает ошибку, а другое нет.
Поэтому вся ваша логика строится на том, что вы так привыкли, при взгляде со стороны: 2 вида одного и того же, но с разным поведением - вот это действительно странно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы