$a = "";
$b = 5;
$c = $a ?? $b; // $c примет значение $a, если она существует и не равна null
// $a существует и равна пустой строке. А пустая строка равна null. То есть $c должна принять значение $b
echo "" == null; // true
// но в итоге получаем $c == "";
echo $c == ""; // true
It returns its first operand if it exists and is not NULL; otherwise it returns its second operand.Как видите, в оригинальном тексте речь идёт не о равенстве с NULL, а о том, что значение не является NULL.