通过静态和非静态方法访问静态属性?

时间:2012-03-13 19:49:08

标签: php oop static

我有一个类,它有一些静态的,一些不是静态的方法。它有一个静态属性。我试图在其所有方法中访问该属性,我无法弄清楚正确的语法。

我拥有的是:

class myClass {
    static public $mode = 'write';
    static public function getMode() {
        return myClass::$mode; 
    }
    public function getThisMode() {
        return $this->mode;
    }
}

有谁能告诉我这个的实际语法?

2 个答案:

答案 0 :(得分:20)

对于静态属性,即使在非静态函数

中也使用以下内容
return self::$mode;

原因是因为无论对象是否已被实例化,都存在静态属性。因此,我们只是使用相同的预先存在的财产。

答案 1 :(得分:4)

如果您不在课堂上,请确保不要忘记$,否则您也会看到此错误。例如,请务必像这样调用它:

$myClass = new myClass();

echo $myClass::$mode;

不喜欢这样:

echo $myClass::mode;