动态类属性 $$value 在 php 中

2022-08-30 12:08:29

如何引用一个类属性,只知道一个字符串?

class Foo
{
    public $bar;

    public function TestFoobar()
    {
        $this->foobar('bar');
    }

    public function foobar($string)
    {
         echo $this->$$string; //doesn't work
    }
}

评估字符串的正确方法是什么?


答案 1

使用字符串变量引用对象的成员变量时,只需使用一个 $。

echo $this->$string;

答案 2

如果要使用属性值来获取属性的名称,则需要使用“{”括号:

$this->{$this->myvar} = $value;

即使它们是对象,它们也可以工作:

$this->{$this->myobjname}->somemethod();

推荐