Cam*_*lis 38 php variables properties class dynamic
如何只知道字符串引用类属性?
class Foo
{
public $bar;
public function TestFoobar()
{
$this->foobar('bar');
}
public function foobar($string)
{
echo $this->$$string; //doesn't work
}
}
Run Code Online (Sandbox Code Playgroud)
评估字符串的正确方法是什么?
Ant*_*ley 67
使用字符串变量引用对象的成员变量时,只需要使用一个$.
echo $this->$string;
Run Code Online (Sandbox Code Playgroud)
小智 31
如果要使用属性值来获取属性的名称,则需要使用"{"括号:
$this->{$this->myvar} = $value;
Run Code Online (Sandbox Code Playgroud)
即使它们是对象,它们仍然起作用:
$this->{$this->myobjname}->somemethod();
Run Code Online (Sandbox Code Playgroud)
Mat*_* H. 19
正如其他人提到的那样,$ this - > $ string应该可以解决问题.
但是,这个
$this->$$string;
Run Code Online (Sandbox Code Playgroud)
将实际评估字符串,并再次评估其结果.
$foo = 'bar';
$bar = 'foobar';
echo $$foo; //-> $'bar' -> 'foobar'
Run Code Online (Sandbox Code Playgroud)