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

$a = "";
$b = 5;

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

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

// но в итоге получаем $c == "";
echo $c == ""; 	  // true
  • Вопрос задан
  • 150 просмотров
Решения вопроса 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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы