我在PHP中有一个对象(在我的例子中,是一个CakePHP模型),它有子对象,例如$this->Model1->Model2
的结构。
我知道上面的语法是引用对象的正确方法,但是如果我通过另一个进程获得了Model2
的名称,那么它是一个字符串变量。如何使用此变量引用它,如下所示:
$model_name = 'Model2';
$this->Model1[ $model_name ]->run_function();
现在很明显,这种选择对象/类的数组样式不起作用,但是我应该使用类似的方法吗?还是有更好的编码实践不会导致这个问题?
你在找这个吗?
$property = 'myProperty';
$object->{$property};
就这样做:
$this->Model1->$model_name->run_function();