class A {
protected $bar = 'bar';
public function foo() {
echo $this->$bar;
}
}
$a = new A();
$a->foo();
Run Code Online (Sandbox Code Playgroud)
令人难以置信的是,这不起作用.我来自C++和C#,所以我可能对PHP不了解.
为什么这个简单的代码会产生'Undefined variable:bar'
因为PHP在评估$bar之前尝试评估变量$this->.由于没有$bar变量,因此会产生通知.
删除$前面的$bar:
echo $this->bar;
Run Code Online (Sandbox Code Playgroud)