После включения строгих предупреждений в PHP 5.2 я увидел загрузку строгих предупреждений о стандартах из проекта, который был изначально написан без строгих предупреждений:
Строгие стандарты: Статическая функция Программа:: getSelectSQL() не должна быть абстрактной в Program.class.inc
Эта функция относится к абстрактной родительской программе классов и объявляется абстрактной статикой, потому что она должна быть реализована в своих дочерних классах, таких как TVProgram.
Я нашел ссылки на это изменение здесь:
Выброшены абстрактные статические функции класса. Из-за недосмотра PHP 5.0.x и 5.1.x допускали абстрактные статические функции в классах. Начиная с PHP 5.2.x, только интерфейсы могут иметь их.
Мой вопрос: может ли кто-нибудь объяснить в ясной форме, почему в PHP не должно быть абстрактной статической функции?