所以我知道我可以做这样的事情在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