Разница между NULL и NULL в PHP

85

Есть ли разница между PHP NULLи nullPHP? Иногда они кажутся взаимозаменяемыми, иногда - нет.

изменить: по какой-то причине, когда я прочитал документацию, на которую есть ссылка в ответе (перед тем, как опубликовать этот вопрос), я прочитал ее как «чувствительную к регистру», а не как «нечувствительную к регистру», что и было всей причиной, по которой я разместил этот вопрос в первую очередь .. .

cmcculloh
источник
2
NULL=nullи наоборот, если не запрашивается точное совпадение в БД.
Funk Forty Niner
@FunkFortyNiner, в этом вопросе нет БД. Вопрос по языку программирования.
Пабло Пазос
@PabloPazos, почему ты звонишь мне через 6 лет? Плюс, если вы еще раз прочтете мой комментарий, вы увидите вероятную актуальность. Посмотрите на ключевое слово «если», которое может быть правдой.
Funk Forty Niner
1
@PabloPazos - немного смешно даже делать такой комментарий, как ваш, то, что он сказал, полностью актуально и полезно. Если бы кто-то другой подошел и посмотрел на это, имея ошибку БД, это помогло бы ускорить поиск решения, те, кто тоже не имеет отношения к делу, просто перейдут и посмотрят другой ответ.
Kenziiee Flavius
1
@FunkFortyNiner Спасибо за ваш комментарий, это именно то, что мне нужно было услышать. Я пытался отфильтровать значение NULL в базе данных с помощью isset (), который обычно возвращает false для обычных значений NULL, но со значением базы данных мне пришлось использовать $ value === NULL. Я не совсем понимаю, как это возможно, но я попал на эту страницу с этой проблемой.
Джефф

Ответы:

124

Null не чувствителен к регистру.

Из документации :

Существует только одно значение типа NULL, и это не чувствителен к регистру ключевого слова NULL.

mbillard
источник
6
Если не запрашивается точное совпадение в БД.
Funk Forty Niner
У меня проблема со сравнением nullзначения, полученного из запроса к базе данных. Вы можете помочь?
Разин Абид
9

Нет никакой разницы. Тот же тип, только ключевое слово без учета регистра . То же, что и True/ Falseetc ...

SolidSnake
источник
-2

ну, есть техническая разница, просто не то, о чем вы думаете (подумайте: где это появляется в словаре): значение ASCII для нижнего регистра null появляется после верхнего регистра. Пытаться:

$a = NULL;
$b = null;
if($a < $b){
   print 'first num appears earlier in the dictionary than second num';
}
else {
   print'the right num appears in the dictionary before the left num ';
}

** на самом деле нет значения ASCII для нижнего регистра NULL, в то время как верхний регистр NULL равен 0. Нижний регистр NULL будет оцениваться как строковое значение, которое будет больше 0. Разница между всеми значениями ASCII верхнего и нижнего регистра составляет 32, за исключением этого где рассматривается все строковое значение.

Дэвид Хан
источник
эээ, как это соотносится с использованием в качестве логического флага? ASCII никогда не запрашивается?
Мартин
1
Это не правильно. Вы должны сказать elseif($b < $a) {... } else print 'the same';и тогда вы увидите, что на самом деле они такие же. Как и nUlL и NuLl.
Мэтт