3 回答

TA貢獻1831條經(jīng)驗 獲得超9個贊
如下表中所示,empty($foo)是相當(dāng)于$foo==null與is_null($foo)具有相同功能$foo===null。該表還顯示了有關(guān)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條經(jīng)驗 獲得超3個贊
不,這不是錯誤。查看帶有==表的寬松比較(第二個表),該表顯示了將第一列中的每個值與其他列中的值進行比較的結(jié)果:
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或""將產(chǎn)生真實的。
您可能要使用is_null [docs]或嚴(yán)格比較(第三張表)。
- 3 回答
- 0 關(guān)注
- 517 瀏覽
添加回答
舉報