在使用 empty(mixed $var) 时要考虑 $var 的 类型,尤其是在判断数据库查询后的字段。
bool empty(mixed $var)
以下的东西被认为是空 true 的:
""(空字符串)0(作为整数的 0)0.0(作为浮点数的 0)"0"(作为字符串的 0)NULLFALSEarray()一个空数组$var未初始化的变量new stdClass()不包含任何属性的对象
注意: string 的判断要非常注意,数据库查询后的字段常常为 string,应该进行正确的类型转换。
以下的东西被认为是非空 false 的:
- $var = true;
- $var = 1;
- $var = -1;
- $var = “0.0”;
- $var = “foo”;
- $var = array(0);
- $var = new stdClass(); $var->property = null;
$str = '0.0';
echo empty($str); // false 很可能和预期是相反的
echo empty((float)$str); // true
– EOF –