2013-10-22 53 views
0

if (0)總是返回false。並if(false)也返回。我無法理解這些差異。在這兩種情況下,實際上如果返回?是NULL還是其他的東西?是否將php false定義爲零?

+3

閱讀> http://php.net/manual/en/types.comparisons.php 虛假== 0,但虛假== 0 – Svetoslav

+0

PHP是弱類型,所以這些!值被認爲是等同的,但不相同。如果你嘗試'if(1 === true)',它會返回false。 '==='的意思是「相同的價值,而不僅僅是等價的」。 – Anthony

+2

如果floor(3)與'floor(3.9)'返回相同,那麼'3'是否等於'3.9'? –

回答

3

falseboolean0integer,和NULL表示不帶任何值的變量。

if構造

if(expression) statement; 

if預計expressionboolean所以integer0的計算結果爲booleanfalse

更多信息:

在大多數情況下的一個值將被自動如果操作,功能或控制結構需要boolean參數進行轉換。

當轉換爲布爾值,下面的值被認爲是FALSE

其他每個值都被認爲是(包括任何resource)。

欲瞭解更多信息,請檢查Booleans

0

想象一下,您將[0, null, false, "", array(), etc]與現有的或非空的東西進行比較。

PHP不是強類型語言。當非嚴格比較(==)看起來像這樣的假:

0蘋果它是沒有蘋果,然後false (has apples more then 0? No)

array() - false (set is not empty? No)

"" - false (has string symbols? No)

+0

我不認爲PHP強類型的說法是解釋行爲的最好方法。考慮Python:它是強類型的,但其行爲方式相同。 –

相關問題