以前有个问题php echo if two conditions are true,大多数人回答使用语句if(!empty($variable)){}
来检查一个变量是否为空,而我的回答是if($variable != ''){}
。我的问题是,为什么大多数人回答if(!empty($variable)){}
,if($variable != ''){}
期望可读性有什么区别?可读性是我目前看到的唯一区别。检查变量是否为空的两种不同方法
谢谢, ATNO
以前有个问题php echo if two conditions are true,大多数人回答使用语句if(!empty($variable)){}
来检查一个变量是否为空,而我的回答是if($variable != ''){}
。我的问题是,为什么大多数人回答if(!empty($variable)){}
,if($variable != ''){}
期望可读性有什么区别?可读性是我目前看到的唯一区别。检查变量是否为空的两种不同方法
谢谢, ATNO
Returns FALSE if var has a non-empty and non-zero value.
The following things are considered to be 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 $var; (a variable declared, but without a value in a class)
注::
小心,如果 “0”(零作为字符串),0(零的整数), - O(负零为一个整数)返回true,“-0”(零作为一个字符串(是的,我已经有一些客户将-0写入表单域))返回false。你需要用空()函数测试它之前投你的变量:
<?php
$var = "-0";
echo empty($var); // returns false
$var = (int) $var; // casts $var as an integer
echo empty($vat); // returns true
?>
@atno更好的方式来自己测试.... – diEcho 2011-05-08 14:27:25
还考虑变量是空的,如果他们是一个0的整数,NULL,FALSE,一个空的阵列(看的返回值)。你只是检查它是不是一个空字符串。如果变量是例如,则检查将返回true设置为(boolean)FALSE。
谢谢,现在明白了:) – afarazit 2011-05-08 14:26:49
同样对'0'字符串返回true – 2011-05-08 14:37:49
'$ var!='' '和'〜empty($ var)'返回相同的结果。我在什么地方? '$ var = FALSE; if($ var!='')echo'Not empty'; } else { echo'Empty'; } if(!empty($ var)){ echo'Not empty'; } else { echo'Empty'; } $ var = 0; if($ var!='')echo'Not empty'; } else { echo'Empty'; } if(!empty($ var)){ echo'Not empty'; } else { echo'Empty'; } $ var = TRUE; if($ var!='')echo'Not empty'; } else { echo'Empty'; } if(!empty($ var)){ echo'Not empty'; } else { echo'Empty'; }' – afarazit 2011-05-08 14:58:41
有上如此相似,为 – diEcho 2011-05-08 14:22:08
刚一说明you..please搜索是很多的问题:要谨慎使用'空() ',它的用途可能太广泛。例如:如果值为*,则使用'empty($ _ POST ['number'])''返回true,但实际用户输入为“0”。 – 2011-05-08 14:41:19
我想我会坚持用'!='''现在对我来说似乎是“更安全” – afarazit 2011-05-09 02:05:05