根据 PHP 文档,当调用
empty($var)
时,以下表达式会返回 true:
- ""(空字符串)
- 0(整数 0)
- 0.0(浮点数 0)
- "0"(字符串 0)
- NULL
- FALSE
- array()(空数组)
- $var(已声明但未赋值的变量)
我已经找到了使用empty($var) && $var != 0
“解决”问题的方法,但是为什么 PHP 开发人员要这样做呢?
我认为这很荒谬,假设你有以下代码:
if (empty($_POST["X"])) {
doSomething();
}
我认为"0"
并不代表空,当什么都没有的时候才是空!
也许使用更加准确的字眼会更好。
if (isset($x) && x != "") {//for strings
doSomething();
}
empty
被定义成这样,因为"0"
显然不是空的。 - Colin Basnett"" == 0 == 0.0 == "0" == null == false == array() == $var
,所以 PHP 是弱类型语言。 - danronmoon