我尝试从同一个类的方法中调用类的成员变量。
如果我直接调用它不起作用,则需要使用$ this。是否有一个原因?该类不能意识到我调用的变量属于它吗?
答案 0 :(得分:0)
$这 - >是类如何“实现”var属于它
答案 1 :(得分:0)
原因或多或少只是因为这就是PHP的工作方式。听起来你习惯于Java,如果没有一个局部变量覆盖同一范围内的成员,它会自动使用当前作用域中的实例成员。 PHP不会授予您这种自由:
class x {
private $y = 'r';
public function z() {
$y = 'q';
echo "$this->y\n"; //r
echo "$y"; //q
}
}
在Java中,您仍然必须使用上面示例中的this.y
来打印r
,因为类成员名称已在本地重写。试想一下,PHP的成员总是在void的方法中被覆盖。