动态对象属性

时间:2013-11-22 10:34:08

标签: php

我有一个问题,是否可以向像

这样的对象添加动态属性
private function get_invoice_info($data, array $rel)
{
    foreach ($data as $info)
    {
        foreach($rel as $val)
        {
           $info->$val->$val->etc;
        }
    }

    return $value;
}

问题是对象属性可以是一个对象,并且拥有自己的属性或关系。

$info->contract$info->contract->contractor

1 个答案:

答案 0 :(得分:1)

如果对象尚不存在,则需要创建它们:

$info->$foo = new stdClass;
$info->$foo->$bar = new stdClass;
$info->$foo->$bar->$baz = 42;

但是我没有看到这样做只是简单地使用数组。 stdClass个对象并没有真正给你带来任何好处,并且可以隐式创建数组到无限深度:

$info[$foo][$bar][$baz] = 42;