使用空over ==“”

时间:2013-03-20 20:09:39

标签: php

我注意到,使用if (empty($var)){并不像大多数人想的那样高效。

而是使用empty()我一直在使用($Var == ""){

因为如果文本框/输入有一个空格,它不是空的..虽然使用==""没有注意到空格,所以如果有一个空格,只有一个空格,我的第二个例子是更多高效

这是php中的一个错误吗?

3 个答案:

答案 0 :(得分:3)

来自empty

的PHP文档
  

以下内容被认为是空的:

"" (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