会不会有任何理由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