Php 动态对象属性

Php 动态对象属性,php,Php,我有一个问题,有没有可能给像这样的物体添加动力学性质 private function get_invoice_info($data, array $rel) { foreach ($data as $info) { foreach($rel as $val) { $info->$val->$val->etc; } } return $value; } 问题是,对象属性可以

我有一个问题,有没有可能给像这样的物体添加动力学性质

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->contract

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

$info->$foo = new stdClass;
$info->$foo->$bar = new stdClass;
$info->$foo->$bar->$baz = 42;
但我不认为仅仅使用数组就可以做到这一点
stdClass
对象并没有真正给您带来任何好处,可以隐式创建无限深度的数组:

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

这是可能的,但如果你开始这样编程,你甚至不到4周就会恨自己。这是一个调试的地狱(除了其他严重的缺点)。寻找像uuu get和uu set这样的神奇方法,让你实现你想要的。或者使用stdClass。但请注意,这不是好的软件设计。。。