會不會有任何理由if ($str == "")
和if (empty($str))
不會產生相同的輸出?
-1
A
回答
4
$str == ""
返回TRUE爲
$str = "";
$str = false;
$str = NULL;
$str = 0;
$str = 0.0;
$str == ""
將返回FALSE爲
$str = "0";
$str = array();
注:這也將返回TRUE一個未定義的變量,但它是一個警告。
在另一方面empty($str)
將是TRUE以上所有情況下(包括未定義的變量),沒有警告。
至於這種差異的原因,這是因爲功能empty
旨在測試一個emtpy變量(任何類型,例如一個數組或數字*)不僅是一個空字符串。
*:現在您可能已經開始使用PHP存儲在字符串中的數字了,它只會根據需要轉換該值,例如echo "1" + 2
給出3
。這就是爲什麼empty($str)
當$str = "0"
返回TRUE,不是因爲它是一個空字符串(不是),而是因爲它是一個空數字。
爲了測試字符串是否爲空,我強烈推薦使用$str === ''
或strlen($str) === 0
。
2
$str = "0";
例如。請參閱this罰款文件。
1
empty
相同== false
(且無需增加對於不存在變量的誤差)。如果你指的是Type Comparison Tables,你會看到"0"
和array()
將比較不同。
2
2
是。如果$str
等於"0"
然後empty($str)
將返回TRUE
而$str == ""
將返回FALSE
。
相關問題
- 1. char str []和char * str有什麼區別?
- 2. grep「str」有什麼區別?和grep「str」*
- 3. list + = str和list + = str有什麼區別,
- 4. str()和astype(str)之間的區別?
- 5. JavaScript中的「typeof str」和「typeof(str)」有什麼區別?
- 6. ['null','','undefined']。indexOf(str)<0和(str!== null || str!==''|| str!== undefined)是否等同?
- 7. (const char * str),(char const * str)和(char * const str)之間有什麼區別?
- 8. char str []和char * str作爲函數參數有什麼區別?
- 9. if(!$ array)和if(empty($ array))之間是否有區別
- 10. stringstream clear和str有什麼區別
- 11. json.dumps和str()有什麼區別?
- 12. Rust的`String`和`str`有什麼區別?
- 13. char * str =「...」和char str [N] =「...」之間的區別?
- 14. sizeof(str -1)和sizeof(str)-1之間的區別?
- 15. CType(str,DateTime)和DateTime.Parse(str)之間的區別
- 16. Clojure中str和print-str之間的區別/關係
- 17. ROR中t(:str)和t:str的區別
- 18. str [0]和str.charAt(0)之間的區別
- 19. str和getpass輸出之間的區別
- 20. python str和元組對象的區別
- 21. String方法split(String str,int len)和split(String str)之間有什麼區別?
- 22. 區別:IF IN和IF ==蟒蛇
- 23. 區別:if((typeof OA!='undefined')&& OA)和if(OA)
- 24. #if和if子句之間的區別?
- 25. 爲什麼str [:len(str)/ 2]而不是str [:len(str)* 0.5]?
- 26. if()的區別?
- 27. if和cond的區別?
- 28. Str to str比較
- 29. char str [m] [n]和char * str []當傳遞到函數時的區別
- 30. 在這種情況下char str [1]和char * str之間的區別?
它們根本不產生輸出。他們是條件。 – think123
@ think123 - 它們會產生輸出,布爾輸出。 – TCS
是的,但它們被放在if語句中,所以不會有任何直接的「輸出」。我可以理解你來自哪裏。 – think123