PHP中的值== NULL但不是=== NULL?

时间:2011-12-20 15:49:30

标签: php null

  

可能重复:
  Null vs. False vs. 0
  How does php cast boolean variables?

我知道某些值对$value == NULL而不是$value === NULL都会返回,但是这些值是否完整?

此外,isset($value)相当于$value === NULLempty($value)相当于$value == NULL

5 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

NULL === NULL

没有别的。因此,如果函数返回NULL,则使用===进行检查将返回true。

  

另外,isset($ value)等价于$ value === NULL和empty($ value)等价于$ value == NULL?

不,不严格。这两个是“语言结构”而不是功能。它们只接受变量名,isset接受多个参数,并在使用未设置的变量时放宽警告。

答案 2 :(得分:0)

三重等于的目的是确保类型匹配。仅使用==,PHP执行truthy / falsy逻辑,意味着0 == null,0 =='',null ==''都是真的,但是0 === null,0 ==='',null == =''都是假的。

此外,'90210'== 90210为真,但'90210'=== 90210为假。

答案 3 :(得分:0)

我建议你阅读这些内容:

  

关于 NULL http://php.net/manual/en/language.types.null.php
  关于 empty() http://php.net/manual/en/function.empty.php(你错了!)
  关于 isset() http://php.net/manual/en/function.isset.php

从官方文档来看,它们非常具有说明性。

答案 4 :(得分:0)

转换为布尔值时评估为FALSE的任何内容都为== NULL

那就是:

  (bool) FALSE
   (int) 0
 (float) 0.0
(string) '' // an empty string
(string) '0'
 (array) array()
 // An object with zero member variables (PHP 4 only)
 // SimpleXML objects created from empty tags

显然,NULL本身。但只有NULL无值的变量为=== NULL

This可能有助于澄清一些事情。