php如何判断一个对象为空?

杨老头
  • 7
//一般的变量用
empty($var);
if($var){echo '不为空'}

但是一个对象变量却没能用上面的方法,有没有什么好方法?

补充一下应用场景,暂时想到的比较常见的有下面两种情况
1、查询数据库返回的结果集是对象形式的时候
2、一个json字符串转换为对象
当然这两种情况都可以转换为数组,那样就可以方便的判断是否为空,但是数组没有对象书写爽,特别是由json字符串转换过来的数组,经常有维度比较大的情况,要访问里面的某项时要写一堆中括号,哪里有对象访问属性书写爽,对不对?

回复
阅读 6.4k
9 个回答

对象是不能判断是否为空的,只能判断里面的某个属性是否为空

你是要判断对象属性数量为0吧?
可以用get_object_vars函数获取对象的属性

对象没有为空的说法,要么是某个类的实例,要么不是。

如果你是要判断某个变量是不是设置了对象,可以用isset函数。

为什么要判断对象为空?请给出场景?

你所谓的空如果为NULL的话,可以用isset;
如果所谓的空为:
"" (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
"0" (作为字符串的0)
NULL
FALSE
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)
这时用empty.
var_dump($var === null);

isset, is_null都可以

if (is_null ($var)) {
    //pass
}

判断一个对象是否为空这样写吧。

你知道吗?

宣传栏