如何在 PHP 中通过变量引用选择对象的子对象



我在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();

最新更新