Как работает террарный оператор в PHP??

$a = "";
$b = 5;

$c = $a ?? $b;    // $c примет значение $a, если она существует и не равна null

// $a существует и равна пустой строке. А пустая строка равна null. То есть $c должна принять значение $b
echo "" == null;  // true

// но в итоге получаем $c == "";
echo $c == ""; 	  // true
  • Вопрос задан
  • 149 просмотров
Решения вопроса 2
@dimoff66
Кратко о себе: Я есть
echo "" == null; // true

При использовании ?? проверяется условие

echo "" === null; // false

то есть строгое равенство первого аргумента значению null, а не просто пустое значение
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Это не тернарный оператор, а оператор слияния (Null coalescing). И определяется он не по слабому равенству, а по тождественности:
It returns its first operand if it exists and is not NULL; otherwise it returns its second operand.
Как видите, в оригинальном тексте речь идёт не о равенстве с NULL, а о том, что значение не является NULL.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽