从普通方法调用类的成员变量

时间:2013-02-06 13:20:05

标签: php

我尝试从同一个类的方法中调用类的成员变量。

如果我直接调用它不起作用,则需要使用$ this。是否有一个原因?该类不能意识到我调用的变量属于它吗?

2 个答案:

答案 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的方法中被覆盖。