我有一个关于PHP中的NULL的问题:
$a = '';
if($a == NULL) {
echo 'is null';
}
为什么我看到是空的时候$a是一个空字符串?那是虫子吗?
我有一个关于PHP中的NULL的问题:
$a = '';
if($a == NULL) {
echo 'is null';
}
为什么我看到是空的时候$a是一个空字符串?那是虫子吗?
当前回答
你要找的是:
if($variable === NULL) {...}
注意===。 当使用==时,PHP将NULL、false、0、空字符串和空数组视为相等。
其他回答
检查== vs ===
== NULL将返回true 0 == NULL将返回true False == null将返回true
而
=== NULL将返回false 0 === NULL将返回false false === NULL返回false
PHP 7 isset() vs empty() vs is_null()
如果使用==,php将空字符串或数组视为null。要区分null和empty,可以使用===或is_null。所以:
if($a === NULL)或if(is_null($a))
如下表所示,empty($foo)等价于$foo==null, is_null($foo)等价于$foo===null。该表还显示了一些关于空比较的棘手值。(φ表示一个未初始化的变量。)
empty is_null
==null ===null isset array_key_exists
ϕ | T | T | F | F
null | T | T | F | T
"" | T | F | T | T
[] | T | F | T | T
0 | T | F | T | T
false | T | F | T | T
true | F | F | T | T
1 | F | F | T | T
\0 | F | F | T | T
使用empty - http://php.net/manual/en/function.empty.php。
例子:
$a = '';
if(empty($a)) {
echo 'is empty';
}