-4

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

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

因为如果文本框/输入有一个空格,它就不是空的。而 using==""不会注意到空格,所以如果有一个空格,并且只有一个空格,我的第二个例子更有效

这是php中的错误吗?

4

3 回答 3

3

来自 PHP 文档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)
于 2013-03-20T20:15:19.943 回答
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

于 2013-03-20T20:16:52.347 回答
0

这不是 PHP 中的错误。所有的语言都在一点一点地提高自己。PHP声称有许多功能,它们将来会贬值。这是否意味着......他们有错误?顺便说一句,我认为is_null($var)接近你所需要的。

编辑2:

empty(),is_null() 和 isset() 之间的区别有一个很好的链接

http://mechiwiki.com/techmed/php/php-empty-is_null-and-isset-comparison

于 2013-03-20T20:26:41.157 回答