在使用 empty(mixed var)时要考虑 var 的类型,尤其是在判断数据库查询后的字段
bool empty(mixed $var)
以下的东西被认为是空的:
- “”(空字符串)
- 0 (作为整数的0)
- 0.0 (作为浮点数的0)
- “0” (作为字符串的0)
- NULL
- FALSE
- array() (一个空数组)
- $var (一个声明了,但是没有值的变量)
注意: string 的判断要非常注意,数据库查询后的字段常常为 string;应该进行正确的类型转换
$str = '0.0';
echo empty($str); // false 很可能和预期是相反的
echo empty((float)$str); // true