根据php文档,以下表达式在调用时返回true empty($var)
我已经找到了如何通过使用,empty($var) && $var != 0但为什么PHP开发人员这样做"解决"问题?我认为这很荒谬,但是你有这个代码:
if (empty($_POST["X"])) {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
我认为"0"不是空的,空的是什么时候什么都没有!也许最好使用它
if (isset($x) && x != "") {//for strings
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
use*_*740 10
empty 大致反映了 PHP选择的FALSE-y值:
转换为布尔值时,以下值被视为FALSE:
- 布尔值FALSE本身
- 整数0(零)
- 浮点数0.0(零)
- 空字符串,字符串"0"
- 一个零元素的数组
- ...
至于为什么 PHP以这种方式工作,或者为什么空函数也适用 - 好吧,那就是它的方式.
考虑使用strlen($x)(这特别适合于$_POST所有字符串值的源)来确定是否存在非空字符串,包括"0".
我使用的最终形式将是:isset($x) && strlen($x),应用任何额外的处理,知道有一些帖子数据.