1
因此,我正在使用一个bag类,并试图从bag类动态创建变量。通过getter创建PHP动态变量
这是我有:
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.
}
}
这让我打电话给$的,而不是$this->bagFoo->getA();
这是我比较喜欢,但问题是我要揭露成员变量来实现它。我想要有相同的动态变量赋值,但通过getter访问成员变量,而不是直接访问。
解决方案我已经,虽然并没有真正喜欢:
- 具有
BagFoo
一个getVars()
函数将返回变种的名称和值的数组,然后通过迭代。 - 调用
get_class_methods()
,然后解析并迭代getters(ew)。
我敢肯定,有一种方法可以让我以更优雅的形式进行尝试,但我无法想象如何实现它。
以下是一个示例http://thegeekyland.blogspot.com/2015/11/php-dynamic-variables.html – Arlind