在使用 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