@drowzeenico

PHP: из-за чего странное поведение при статическом вызове метода?

День добрый. Ковырялся в PHP и обнаружил очень странное поведение при статическом вызове метода. Пример:
class A {
	public function foo () {
		echo 'foo';
	}
}
A::foo();

Сработает и выведет "foo", хотя метод не объявлен как static. Это баг? Или я чего-то не понимаю?
  • Вопрос задан
  • 2536 просмотров
Решения вопроса 1
@veontomo
Подробнее здесь
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
nowm
@nowm
Это такой небольшой глюк PHP. До тех пор, пока в функции foo() нет обращения к нестатическим переменным, вроде $this, её можно будет вызывать статическим способом.
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
Сработает, но сгенерирует E_STRICT.
В 5.3.2 уже должен быть - скорей всего у вас отключен вывод этого уровня ошибок. В 5.3 он даже в E_ALL не входил и должен включаться отдельно: E_ALL | E_STRICT
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы