【发布时间】:2015-10-28 08:25:30
【问题描述】:
我如何知道任意对象在 PHP 中是否具有 any 属性?
我需要它作为中断条件对 JSON 对象进行递归搜索 即当对象没有更多子对象时中断搜索。
我想到了 property_exists,但它会检查 特定 属性,而我想知道 any 属性是否存在。
【问题讨论】:
我如何知道任意对象在 PHP 中是否具有 any 属性?
我需要它作为中断条件对 JSON 对象进行递归搜索 即当对象没有更多子对象时中断搜索。
我想到了 property_exists,但它会检查 特定 属性,而我想知道 any 属性是否存在。
【问题讨论】:
foreach (new object as $prop => $value) {
echo "property \$$prop is $value\n";
}
你也可以通过get_object_vars方便地做到这一点:
$propertyName = key(get_object_vars($object));
【讨论】:
函数get_object_vars() 将返回对象上所有可访问属性的列表。
【讨论】:
你可以试试这个功能:
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";
【讨论】:
你可以使用:
if(isset($yourobject)){
//YourCode
}
在循环中查看对象是否已设置任何内容。
【讨论】: