2012-11-28 65 views
0

我有一个PHP对象(在我的情况下,CakePHP模型),有子对象,例如。 $this->Model1->Model2的结构。如何通过PHP中的变量引用来选择对象的子对象?

我知道上述语法是引用对象的正确方法,但是如果我通过另一个进程获得了名称Model2,那么它就是一个字符串变量。我怎么可以参考使用这个变量它,类似如下:

$model_name = 'Model2'; 
$this->Model1[ $model_name ]->run_function(); 

现在清楚地选择对象/类不起作用的这种阵列式的,但有一个类似的方法,我应该使用?还是有更好的编码实践,不会一起导致这个问题?

回答

2

您是否正在寻找?

$property = 'myProperty'; 
$object->{$property}; 
+1

也就是说完全正确!谢谢,我从来没有见过类似的符号。你太快了我甚至无法正确标记你。 我实际上并没有意识到这很简单,刚刚测试时,大括号的相关性是什么,他们似乎并不需要。 – Rhys

+0

不客气:) – cem

1

就这样做:

$this->Model1->$model_name->run_function(); 
相关问题