知道对象是否在PHP中具有子属性

时间:2015-10-28 08:25:31

标签: php algorithm syntax

如何知道任意对象在PHP中是否具有任何属性?

我需要将它作为中断条件对JSON对象进行递归搜索 即当对象没有更多子对象时中断搜索。

我想到了 property_exists ,但它会检查特定的属性,而我想知道是否存在任何属性。

4 个答案:

答案 0 :(得分:2)

函数get_object_vars()将返回对象上所有可访问属性的列表。

答案 1 :(得分:2)

您可以尝试使用此功能:

http://php.net/manual/en/function.get-object-vars.php

来自文档:

  

返回范围内指定对象的已定义对象可访问非静态属性的关联数组。如果尚未为属性分配值,则将返回NULL值。

您还可以使用ReflectionClass来获取如下对象属性:

$obj = new YourObjectClass;
$reflect = new ReflectionClass($obj);
$props = $reflect->getProperties();

foreach ($props as $prop) {
    print $prop->getName() . "\n";

答案 2 :(得分:2)

你可以use a foreach loop

foreach (new object as $prop => $value) {
    echo "property \$$prop is $value\n";
}

您也可以使用get_object_vars方便地完成此操作:

$propertyName = key(get_object_vars($object));

答案 3 :(得分:0)

您可以使用:

@Html.RenderPartial("_Row", DataParameters)

在循环中查看对象是否已设置任何内容。