php 的 empty() 的确是挺奇怪的一个函数,
以下列一下情况:
<?php
var_dump(empty('')); // bool(true) 很好,没有问题
var_dump(empty(' ')); // bool(false) 很好,没有问题
var_dump(empty('0')); // bool(true) 问题来了
var_dump(empty(0)); // bool(true) 这里看上去是没有问题的
var_dump(empty([])); // bool(true) 木有问题
var_dump(empty([0])); // bool(false) 也没有问题
对于字符串是 '0' 的情况特别的特殊,所以 empty() 函数的使用一定要谨慎,出现八哥是有可能的。