3 回答
TA贡献1831条经验 获得超9个赞
如下表中所示,empty($foo)是相当于$foo==null与is_null($foo)具有相同功能$foo===null。该表还显示了有关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()和is_null()功能。使用简单比较可以减少歧义,更快和更清洁。特别是匹配的花括号会更少。
例如if($x==null || $y==null)vsif(is_null($x) || is_null($y))
TA贡献1830条经验 获得超3个赞
不,这不是错误。查看带有==表的宽松比较(第二个表),该表显示了将第一列中的每个值与其他列中的值进行比较的结果:
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
[...]
"" FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
在那里,你可以看到一个空字符串""相比false,0,NULL或""将产生真实的。
您可能要使用is_null [docs]或严格比较(第三张表)。
- 3 回答
- 0 关注
- 496 浏览
添加回答
举报