PHP中NULL和null之间的区别


85

NULLnullPHP之间有区别吗?有时它们似乎是可互换的,有时则不是。

编辑:出于某种原因,当我阅读答案中链接的文档时(在发布此问题之前),我将其阅读为“区分大小写”而不是“不区分大小写”,这就是我首先发布此问题的全部原因。 。


2
NULL=null反之亦然,除非查询数据库中的完全匹配项。
Funk 40 Niner

@FunkFortyNiner没有涉及此问题的数据库。问题是关于编程语言的。
Pablo Pazos

@PabloPazos 6年过去了,为什么您要对我执行ping操作?另外,如果您再次阅读我的评论,您可能会发现相关性。查看关键字“除非”,否则可能是事实。
Funk 40 Niner,

1
@PabloPazos甚至像您一样发表评论都有点荒谬,他说的话是完全相关和有用的。如果其他人出现并在出现数据库错误的情况下查看了此内容,则将有助于快速找到解决方案,那些不相关的人也将继续前进并查看另一个答案。
Kenziiee Flavius

1
@FunkFortyNiner感谢您的评论,这正是我需要听到的。我试图通过使用isset()过滤掉数据库值NULL,该值通常对常规null返回false,但是对于数据库值,我不得不使用$ value === NULL。我不太了解如何做到这一点,但是我遇到了这个问题。
杰夫

Answers:




-2

两者之间存在技术差异,只是不是您在想什么(想想:它在字典中的什么地方出现):小写null的ASCII值出现在大写字母之后。尝试:

$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 ';
}

**实际上,小写null时没有ASCII值,而大写NULL为0。小写null将被评估为大于0的字符串值。所有大写和小写ASCII值之间的差值为32,除了此处其中考虑了整个字符串值。


err,这与作为布尔型标志的用法有何关系?永远不会查询ASCII吗?
马丁

1
错了 您应该说elseif($b < $a) {……} else print 'the same';然后您会发现实际上它们是相同的。如nUlL和NuLl。
马特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.