可能重复:
Null vs. False vs. 0
How does php cast boolean variables?
我知道某些值对$value == NULL
而不是$value === NULL
都会返回,但是这些值是否完整?
此外,isset($value)
相当于$value === NULL
而empty($value)
相当于$value == NULL
?
答案 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可能有助于澄清一些事情。