2011-12-20 72 views
2

可能重複:
Null vs. False vs. 0
How does php cast boolean variables?在PHP中,什麼值是== NULL但不是=== NULL?

我知道一些值會爲$value == NULL,而不是返回true爲$value === NULL但有這些值的完整列表?

另外,是isset($value)相當於$value === NULLempty($value)相當於$value == NULL

+2

也許這會回答你http://php.net/manual/en/types.comparisons.php – 2011-12-20 15:51:35

+0

'$ value === NULL'爲true的唯一時間是'$ value = NULL'時,或者沒有定義。 – BoltClock 2011-12-20 15:51:56

+0

重複問題都不是布爾型或整型以外的類型。例如array()== NULL與array()!== NULL。我正在尋找比所提供的更完整的清單。 – Chris 2011-12-20 16:06:02

回答

1

NULL === NULL

沒有別的呢。因此,如果函數返回NULL,那麼使用===進行檢查將返回true。

此外,isset($ value)等價於$ value === NULL和空值($ value)等價於$ value == NULL?

不,不嚴格。這兩個是「語言結構」而不是功能。它們只接受變量名稱,isset接受多個參數,並且在使用未設置的變量時放寬警告。

0

三等於的目的是確保類型匹配。只使用==,PHP執行truthy/falsy邏輯,意思是0 == null,0 =='',null ==''都是true,但是0 === null,0 ==='',null == =''都是假的。

此外,'90210'== 90210爲真,但'90210'=== 90210爲假。

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可能有助於澄清一些事情。

相關問題