Как правильно вызывать статический метод в PHP? - PullRequest
1 голос
/ 27 февраля 2012

Когда я вызываю мой статический метод с помощью static::some_method();, он выдает мне следующую ошибку:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting T_VARIABLE in /some/path/SomeClass.class.php on line 15

Если я заменяю static на имя класса, это, конечно, работает, но как правильно вызватьстатический метод без использования имени класса?

Ответы [ 2 ]

8 голосов
/ 27 февраля 2012

Если вы находитесь в контексте класса, тогда

self::method();
static::method();

... будут оба работать с различным поведением, связанным с late static binding.

Если вы не находитесь в контексте класса, то вам нужно использовать имя класса, к которому относится метод:

SomeClass::method();

В противном случае вы получите эту глупую ошибку на иврите, T_PAAMAYIM_NEKUDOTAYIM, что означает «двойнойдвоеточие "на английском.

2 голосов
/ 27 февраля 2012

Используйте

ClassName::some_method()

для вызова статического метода (без использования ключевого слова static) или, если вы находитесь внутри одного из этих классов, используйте

self::some_method()

, где self -ключевое слово (т.е. внутри другого метода).

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