我注意到,使用if (empty($var)){
并不像大多数人想的那样有效。
而是使用empty()
我一直在使用的 if($Var == ""){
因为如果文本框/输入有一个空格,它就不是空的。而 using==""
不会注意到空格,所以如果有一个空格,并且只有一个空格,我的第二个例子更有效
这是php中的错误吗?
我注意到,使用if (empty($var)){
并不像大多数人想的那样有效。
而是使用empty()
我一直在使用的 if($Var == ""){
因为如果文本框/输入有一个空格,它就不是空的。而 using==""
不会注意到空格,所以如果有一个空格,并且只有一个空格,我的第二个例子更有效
这是php中的错误吗?
来自 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)
来自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
。
这不是 PHP 中的错误。所有的语言都在一点一点地提高自己。PHP声称有许多功能,它们将来会贬值。这是否意味着......他们有错误?顺便说一句,我认为is_null($var)
接近你所需要的。
编辑2:
empty(),is_null() 和 isset() 之间的区别有一个很好的链接
http://mechiwiki.com/techmed/php/php-empty-is_null-and-isset-comparison