2016-10-08 202 views
0

我只是var_dump(false==0)它輸出bool(true)爲什麼false== 0是真實的。我知道,因爲如果我echo true;它將輸出1的真如此數值爲1true==1是真實的,但假的數字值不0,因爲當我echo false;它什麼都不顯示(空),那麼false如何與0具有相同的值因爲我們知道==運算符會比較這些值,如果它們相同則返回true,如果它們的值不相同則返回false,所以在false==0的情況下它應該是假的。任何想法 ?爲什麼(false == 0)是TRUE?

回答

1

將布爾值TRUE值轉換爲字符串「1」。布爾FALSE是 轉換爲「」(空字符串)。這允許在布爾值和字符串值之間進行轉換並返回 。

因此,false == ""false == 0都是正確的。請記住,"0"0不一樣。

+0

這正是另一種方式不回答我的問題,你說'false == 0'是真的,我知道這一點,但我問爲什麼?假值被轉換成「0」而不是0 – beginner

+0

@beginner閱讀我再次寫的內容。 0與「」相同。只是一個字符串或一個int表示。 –

1

你可以在這裏查一下。

PHP Type Comparison

總之,==鬆散比較運算符它調用比較之前的類型轉換。也許你應該使用嚴格比較運算符===代替。

同樣的故事發生在JavaScript中。

0

false具有相同的值0,它是寫它

所以,false == 0將是同樣的事情,說

0 == 0 返回true因爲0 = 0

+0

我明白虛假的價值只是0,概念是假的不'回顯錯誤'不打印出'0'所以問題是爲什麼'回顯虛假'不打印0 – beginner

相關問題