在 PHP 中为动态类成员赋值的语法


Syntax to assign values to dynamic class members in PHP?

我有一个结构如下的类:

class Test {
    private $var1;
    private $var2;
    private $var3;
    public function __construct($params) {
        foreach($params as $key => $value) {
            $this->$key = $value;
        }
    }
}

这个想法是,我可以在实例化新对象时传递任意数量的参数。例如,我可以做:

$params['var2'] = "Variable 2 Instantiated";
$params['var3'] = "Test";
$test = new Test($params);

这只会实例化 $test->var2 和 $test->var3。

到目前为止,我一直在编写赋值列表,但是如果我想实例化一个只有一半可用成员的对象,我必须检查是否已设置值等。

所以实际的问题是:

将值分配给动态类成员的正确语法是什么?

$this->$var = $var2

根据我的例子,不起作用。我尝试谷歌搜索没有运气。

您的示例已经完美运行。看到它在 codepad.org 上工作。