【问题标题】:Get property of a class/object dynamically (not knowing the property name beforehand) in PHP在 PHP 中动态获取类/对象的属性(事先不知道属性名称)
【发布时间】:2013-04-12 04:10:04
【问题描述】:

我想获得对象$class->property 的属性,但我不知道我将尝试获得的属性的名称。

可能是$class->property_one,也可能是class->property_twoone 还是 two 的信息存储在一个变量中,我们称之为$var

我得到的最接近的是${'$class->property_'.$var},但问题是 PHP 似乎认为我正在寻找一个名为“$class->property_xxx”的变量,而实际上我想要来自 $object 的 $property。

感谢您的建议!

【问题讨论】:

    标签: php class variables properties


    【解决方案1】:

    试试类似的东西

    $test_class = new stdClass();
    
    $test_class->property_one = 'p_one';
    $test_class->property_two = 'p_two';
    
    $var = 'two';
    
    echo $test_class->{"property_$var"};
    

    打印“p_two”

    【讨论】:

      【解决方案2】:
      $obj->{'property_' . $var};
      

      【讨论】:

        【解决方案3】:

        你应该关注variable variables的手册页。

        你可以这样做:

        $property = 'property_' . $var;
        echo $obj->$property;
        

        或者像这样使用所谓的curly syntax

        echo $obj->{'property_' . $var};
        

        【讨论】:

        • 谢谢。我应该保留这个问题还是删除它?
        • 坚持下去。这是一个典型的问题,每个 PHP 都会问自己一次。它被赞成了;)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-20
        • 2013-05-10
        • 1970-01-01
        • 2017-06-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多