PHP中NULL和null的区别

102

NULLnull 在 PHP 中有区别吗? 有时它们似乎可以互换使用,有时则不行。

编辑:由于某种原因,在阅读答案中链接的文档时(在发布此问题之前),我将其解释为“区分大小写”,而实际上是不区分大小写,这也是我首次发布此问题的原因...


2
NULL=null,反之亦然,除非在数据库中查询到完全匹配。 - Funk Forty Niner
1
@PabloPazos 你为什么在六年过去后还要ping我?此外,如果你再读一遍我的评论,你会看到很可能有关联。看看关键词“unless”,这可能是一个真相。 - Funk Forty Niner
2
@PabloPazos,你的评论有点荒谬,他说的完全是相关和有帮助的。如果其他人在遇到数据库错误时看到了这个问题,它将有助于快速解决问题,而那些不相关的人将简单地继续寻找另一个答案。 - Kenziiee Flavius
3
@FunkFortyNiner 谢谢您的评论,这正是我需要听到的。我试图使用isset()过滤数据库值NULL,但通常对于普通的null会返回false,但对于数据库值,我必须使用$value === NULL。我不太明白这是如何可能的,但我因这个问题而来到了这个页面。 - Jeff
@PabloPazos,“unless”这个词在这里提供了额外的信息。当Funky Forty Niner抱怨他的帖子和回复之间的差异时,他发表了一个相当无效的评论。无论何时,如果他错了,都应该指出来。 - I try so hard but I cry harder
显示剩余3条评论
4个回答

138

Null不区分大小写。

来自文档

类型为null的值只有一个,那就是不区分大小写的关键字NULL。


8
除非在数据库中查询到完全匹配的结果。 - Funk Forty Niner
我在比较从数据库查询得到的null值时遇到了问题,你能帮忙吗? - Razin Abid
1
@FunkFortyNiner SQL和PHP是不同的编程语言。它们的NULL具有不同的行为。 - dolmen
1
对于那些现在想知道是更好地将关键字写成大写还是小写的人们。 PHP-FIG建议使用小写符号来表示此关键字(请参见https://www.php-fig.org/psr/psr-2/)。 我同意这一点,因为以这种方式书写时,与MySQL相同名称的关键字会减少混淆。 但由于这些只是建议(其中一些是有争议的,例如空格与制表符的缩进),如果您还没有任何指南,您应该了解它们,并根据这些知识决定是否遵循它们。 - Alexander Behling

11

没有区别。它们属于相同的类型,只是大小写不敏感的关键字。和True/False等一样...


3

0

NULL = null,意味着null = NULL,两者相互引用且只有一个数据类型null

PHP手册:

类型为null的值只有一个,即大小写不敏感的常量null

只有在底层数据库具有特定要求时才需要考虑这一点。

但是,如果我们以MySQL DBMS为例,在列中的空值表示为大写NULL,但两种情况都可以使用。为了您的满意,您可以使用NULL作为示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接