根据php文档,调用empty($var)
我已经找到了如何解决"使用empty($var) && $var != 0
的问题,但为什么php开发人员这样做?
我认为这很荒谬,但是你有这个代码:
if (empty($_POST["X"])) {
doSomething();
}
我认为"0"
不是空的,空的是什么时候没有!
也许最好使用
if (isset($x) && x != "") {//for strings
doSomething();
}
答案 0 :(得分:7)
empty
大致镜像 PHP's selection of FALSE-y values:
转换为布尔值时,以下值被视为FALSE:
- 布尔值FALSE本身
- 整数0(零)
- 浮点数0.0(零)
- 空字符串,字符串“0”
- 包含零元素的数组
- ...
至于为什么 PHP以这种方式工作,或为什么空函数也是如此 - 好吧,那就是它的方式。
考虑使用strlen($x)
(这特别适合$_POST
这些都是字符串值的来源)来确定是否存在非空字符串,包括“0”。
我使用的最终表单是:isset($x) && strlen($x)
,并且知道有一些帖子数据后应用了任何其他处理。