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

Dan*_*dux 9 php oop static

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

我有的是这个:

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

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

yeh*_*uda 21

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

return self::$mode;
Run Code Online (Sandbox Code Playgroud)

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

  • 是的,这奏效了。谢谢。我有点好奇为什么 className::$mode 不起作用?我会尽快接受你的问题。 (2认同)

And*_*rew 6

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

$myClass = new myClass();

echo $myClass::$mode;
Run Code Online (Sandbox Code Playgroud)

不是这样的:

echo $myClass::mode;
Run Code Online (Sandbox Code Playgroud)