可能重複:
Null vs. False vs. 0
How does php cast boolean variables?在PHP中,什麼值是== NULL但不是=== NULL?
我知道一些值會爲$value == NULL
,而不是返回true爲$value === NULL
但有這些值的完整列表?
另外,是isset($value)
相當於$value === NULL
和empty($value)
相當於$value == NULL
?
可能重複:
Null vs. False vs. 0
How does php cast boolean variables?在PHP中,什麼值是== NULL但不是=== NULL?
我知道一些值會爲$value == NULL
,而不是返回true爲$value === NULL
但有這些值的完整列表?
另外,是isset($value)
相當於$value === NULL
和empty($value)
相當於$value == NULL
?
NULL === NULL
沒有別的呢。因此,如果函數返回NULL
,那麼使用===
進行檢查將返回true。
此外,isset($ value)等價於$ value === NULL和空值($ value)等價於$ value == NULL?
不,不嚴格。這兩個是「語言結構」而不是功能。它們只接受變量名稱,isset
接受多個參數,並且在使用未設置的變量時放寬警告。
三等於的目的是確保類型匹配。只使用==,PHP執行truthy/falsy邏輯,意思是0 == null,0 =='',null ==''都是true,但是0 === null,0 ==='',null == =''都是假的。
此外,'90210'== 90210爲真,但'90210'=== 90210爲假。
我建議你閱讀這些:
關於
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
從正式的文件,他們是非常具有說服力的。
轉換爲布爾值時評估爲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可能有助於澄清一些事情。
也許這會回答你http://php.net/manual/en/types.comparisons.php – 2011-12-20 15:51:35
'$ value === NULL'爲true的唯一時間是'$ value = NULL'時,或者沒有定義。 – BoltClock 2011-12-20 15:51:56
重複問題都不是布爾型或整型以外的類型。例如array()== NULL與array()!== NULL。我正在尋找比所提供的更完整的清單。 – Chris 2011-12-20 16:06:02