【发布时间】:2014-05-27 05:44:24
【问题描述】:
所以我正在使用包类,并且我正在尝试从包类动态创建变量。
这是我所拥有的:
class BagFoo
{
public $a;
public $b;
public $c;
}
class Bar
{
private $bagFoo;
public function output()
{
foreach($this->bagFoo as $key => $value)
{
$$key = $value;
}
//output then happens here.
}
}
这允许我调用 $a 而不是我喜欢的$this->bagFoo->getA();,但问题是我必须公开成员变量才能实现它。我希望有相同的动态变量分配,但通过 getter 访问成员变量,而不是直接访问。
我想过但不太喜欢的解决方案:
- 在
BagFoo中有一个getVars()函数,该函数将返回一个 var 名称及其值的数组,然后对其进行迭代。 - 调用
get_class_methods(),然后解析并遍历 getter (ew)。
我确信有一种方法可以以更优雅的形式来做我正在尝试的事情,但我就是想不出如何实现它。
【问题讨论】:
标签: php dynamic reflection