【问题标题】:Know if an object has sub properties in PHP知道一个对象在 PHP 中是否有子属性
【发布时间】:2015-10-28 08:25:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: php algorithm syntax


    【解决方案1】:

    你可以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));
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        你可以试试这个功能:

        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";
        

        【讨论】:

          【解决方案4】:

          你可以使用:

           if(isset($yourobject)){
             //YourCode
           }
          

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

          【讨论】:

            猜你喜欢
            • 2010-10-11
            • 1970-01-01
            • 2022-07-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-18
            相关资源
            最近更新 更多