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


Access static property through static and non-static methods?

我有一个类,它有一些静态的,一些非静态的方法。它具有静态属性。我试图在它的所有方法中访问该属性,但我找不出正确的语法。

我有这个:

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

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

对于静态属性,即使在非静态函数中也要使用以下内容

return self::$mode;

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

如果您在类之外,请确保不要忘记$,否则您也会看到此错误。例如,一定要这样称呼它:

$myClass = new myClass();
echo $myClass::$mode;

不是这样的:

echo $myClass::mode;