Доступ к статическим свойствам через статические и нестатические методы? - PullRequest
7 голосов
/ 13 марта 2012

У меня есть класс, и у него есть некоторые статические, некоторые не статические методы. У него есть статическое свойство. Я пытаюсь получить доступ к этому свойству во всех его методах, я не могу понять правильный синтаксис.

Что у меня есть это:

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

Может кто-нибудь сказать мне фактический синтаксис для этого?

Ответы [ 2 ]

20 голосов
/ 13 марта 2012

Для статических свойств используйте следующее даже внутри нестатической функции

return self::$mode;

Причина этого в том, что статическая собственность существует независимо от того, был ли объект создан или нет. Поэтому мы просто используем это уже существующее свойство.

5 голосов
/ 31 августа 2015

Если вы находитесь за пределами класса, убедитесь, что не забыли $, иначе вы также увидите эту ошибку.Например, не забудьте назвать его так:

$myClass = new myClass();

echo $myClass::$mode;

Не так:

echo $myClass::mode;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...