所以我知道我可以做這樣的事情在PHP中:PHP動態對象屬性有沒有辦法讓它工作?
<?php
$x = 'a';
$a = 5;
echo $$x;
將輸出5;
但它不適用於對象/屬性。有沒有辦法讓這個代碼工作?
<?php
class FooBar
{
public $foo;
public $bar;
public function __construct()
{
$this->foo = 'foo';
$this->bar = 'bar';
}
}
$FooBar = new FooBar();
$str = 'FooBar->foo';
echo $$str;
+1對於__get魔術方法的建議 – 2010-08-03 08:05:26
您理論上也可以使用反射API http://php.net/reflection,儘管它會非常冗長,我不希望性能會很好。具體來說,你需要'$ o = new ReflectionObject($$ classname); echo $ o-> getProperty($ varname);' – 2010-08-03 08:21:23