if (0)
總是返回false。並if(false)
也返回假。我無法理解這些差異。在這兩種情況下,實際上如果返回?是NULL還是其他的東西?是否將php false定義爲零?
0
A
回答
3
false
是boolean,0
是integer,和NULL表示不帶任何值的變量。
在if構造
if(expression) statement;
if預計expression是boolean所以integer0
的計算結果爲booleanfalse
。
更多信息:
在大多數情況下的一個值將被自動如果操作,功能或控制結構需要boolean參數進行轉換。
當轉換爲布爾值,下面的值被認爲是FALSE:
- 的booleanFALSE本身
- 的integer 0(零)
- 的float 0.0(零)
- 空string,和string 「0」
- 一個array用零元素
- 一個object零成員變量(PHP 4只)
- 特殊類型NULL(包括尚未設定的變量)從空標籤創建
- SimpleXML對象
其他每個值都被認爲是真(包括任何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:它是強類型的,但其行爲方式相同。 –
相關問題
- 1. PHP零整數正在評估爲false
- 2. 是否可以定義__cplusplus等於零?
- 3. UIApplication.shared.delegate.persistentContainer.viewContext是否爲零?
- 4. 將int截斷爲char - 是否定義?
- 5. 將NSString對象設置爲零是否有意義?
- 6. 如何確定值是否爲零?
- 7. GLSL:確定向量是否爲零
- 8. boolean.isInstance(true)是否爲false?
- 9. 當對象不是零時,NoMethodError(未定義方法`[]'爲零:NilClass)
- 10. 檢查time_t是否爲零
- 11. UIApplication sharedApplication - keyWindow是否爲零?
- 12. golang(* interface {})(nil)是否爲零?
- 13. NSMutableArray addObject是否爲零?
- 14. 背景是否爲零值?
- 15. swiprolog map false爲零且爲true
- 16. 在rspec中被認爲是否爲false?
- 17. 爲什麼GTK +定義了TRUE和FALSE?
- 18. 是否可以自定義forms.Booleanfield對應「true」和「false」值?
- 19. PHP定義()爲什麼它返回false,即使定義了常量?
- 20. XML將空屬性反序列化爲零併爲false
- 21. 確定是否有值爲空,如果爲true,則返回false,否則爲true
- 22. 是否將nullptr解析爲lambda函數未定義的行爲?
- 23. Rails 4.0未定義方法`[]'爲零:NilClass
- 24. FTP_NLIST PHP是bool(false)
- 25. AutoHotkey是否能夠以基於零的順序定義數組?
- 26. 未定義的方法`url'爲零:NilClass
- 27. 檢查字典中的值是否定義/長度爲零的最Pythonic方法
- 28. 檢查參數是否有值失敗(NoMethodError(未定義方法'[]'爲零:NilClass):)
- 29. 未定義的方法'paginate'爲零:NilClass
- 30. Mongoid未定義方法[]爲零:nilClass
閱讀> http://php.net/manual/en/types.comparisons.php 虛假== 0,但虛假== 0 – Svetoslav
PHP是弱類型,所以這些!值被認爲是等同的,但不相同。如果你嘗試'if(1 === true)',它會返回false。 '==='的意思是「相同的價值,而不僅僅是等價的」。 – Anthony
如果floor(3)與'floor(3.9)'返回相同,那麼'3'是否等於'3.9'? –