class A {
protected $bar = 'bar';
public function foo() {
echo $this->$bar;
}
}
$a = new A();
$a->foo();
令人难以置信的是,这不起作用。我来自C ++和C#,所以我可能对PHP不了解。
答案 0 :(得分:6)
为什么这个简单的代码会产生'Undefined variable:bar'
因为PHP在评估$bar
之前尝试评估变量$this->
。由于没有$bar
变量,因此会产生通知。
删除$
前面的$bar
:
echo $this->bar;
我建议您阅读文档的Variable Variables部分以及OOP Basics。
答案 1 :(得分:2)
当您访问会员时,您只需要this
之前的美元符号;即改为访问它:
echo $this->bar;
答案 2 :(得分:0)
试试这个
public function(){
echo $this->bar;
}
使用$ this时,请不要在变量$
之前使用符号$this->$variable
但是$this->variable;