Статическое ключевое слово PHP5 и его использование - PullRequest
2 голосов
/ 21 февраля 2011

Ключевое слово static, как известно, является свободным агентом.

Вы можете объявить метод "статический", написав:

protected static function foo() {
// lots of self:: code in here
}

Или:

static protected function bar() {
// lots of self:: code in here
}

Я только что наткнулся на код, который гласил:

static protected static function foobar() {
// lots of self:: code in here
}

Конечно, это опечатка от первоначального автора, , но почему PHP принимает это как действительное утверждение?


ОБНОВЛЕНИЕ Соответствующая версия PHP 5.2.16 .Я только что подтвердил, это также верно:

static static static public static function foobar() {
// lots ...
}

1 Ответ

5 голосов
/ 21 февраля 2011

Это похоже на ошибку в предыдущих версиях PHP, которая была исправлена. Тестирование в PHP 5.3 дает

Неустранимая ошибка: Несколько статических модификаторов не допускаются

РЕДАКТИРОВАТЬ: спасибо Мэтту Гибсону за поиск, это действительно была ошибка, которая была исправлена ​​где-то в ветке PHP 5.3 .

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