Après avoir activé les avertissements stricts en PHP 5.2, j'ai vu une charge d'avertissements de normes strictes d'un projet qui a été écrit à l'origine sans avertissements stricts :
Des normes strictes : Fonction statique Programme::getSelectSQL() ne doit pas être abstrait dans Programme.class.inc
La fonction en question appartient à une classe mère abstraite, Program, et est déclarée abstract static parce qu'elle doit être implémentée dans ses classes filles, comme TVProgram.
J'ai trouvé des références à ce changement aquí :
Suppression des fonctions abstraites des classes statiques. A cause d'un oubli, PHP 5.0.x et 5.1.x autorisait les fonctions statiques abstraites dans les classes. Depuis PHP 5.2.x, seules les interfaces peuvent les avoir.
Ma question est la suivante : quelqu'un peut-il expliquer de manière claire pourquoi il ne devrait pas y avoir de fonction statique abstraite en PHP ?