持续更新中...
一、empty不能判断空对象
遇到的坑
在laravel model中查找数据结果集,结果集以对象的结构显示,用empty去判断是否为空,为空则提示记录不存在,否则就继续执行。但是发现empty误判了,明明对象是空的,却判断为不空。empty()这个方法是不能直接判断没有任何属性的对象是否为空的
原因
以下是例程,展示empty不能判断空对象的情况
$obj = new stdClass;
if (empty($obj)) {
echo "xxxxx";
} else {
echo "pppp";
}
解决方法
要想判断没有任何属性的对象是否为空,最方便的方式是把对象转成数组对象。 写法一:
$obj = new stdClass;
if (empty((array)$obj)) {
echo "xxx";
} else {
echo "ppp";
}
写法二:
$obj = new stdClass;
if (empty(get_object_vars($obj))) {
echo "xxx";
} else {
echo "ppp";
}