我注意到,使用if (empty($var)){
并不像大多数人想的那样高效。
而是使用empty()
我一直在使用($Var == ""){
因为如果文本框/输入有一个空格,它不是空的..虽然使用==""
没有注意到空格,所以如果有一个空格,只有一个空格,我的第二个例子是更多高效
这是php中的一个错误吗?
答案 0 :(得分:3)
来自empty
以下内容被认为是空的:
"" (an empty string) 0 (0 as an integer) 0.0 (0 as a float) "0" (0 as a string) NULL FALSE array() (an empty array) $var; (a variable declared, but without a value)
看起来你只是在测试是否存在非空白字符,所以这应该有效:
if (strlen(trim($var)) == 0)
答案 1 :(得分:0)
来自function.empty手册页。
以下内容被认为是空的:
"" (an empty string) 0 (0 as an integer) 0.0 (0 as a float) "0" (0 as a string) NULL FALSE array() (an empty array) $var; (a variable declared, but without a value)
而empty(" ")
会返回FALSE
。
此外," "
字符串与ASCII字符0x20
相同。
答案 2 :(得分:0)
这不是PHP中的错误。所有语言都在逐步改进。 PHP声称有许多功能,它们将来会被折旧。是这个意思......他们有错误吗?
顺便说一句,我认为is_null($var)
接近你所需要的。
编辑2:
有一个很好的链接,用于区分empty(),is_null()和isset()
http://mechiwiki.com/techmed/php/php-empty-is_null-and-isset-comparison