在PHP 5.2中启用严格警告后,我看到一个项目的严格标准警告,这些警告最初是在没有严格警告的情况下编写的:
严格标准:静态函数 Program :: getSelectSQL()在Program.class.inc中不应该是抽象的
有问题的函数属于抽象父类Program,并被声明为abstract static,因为它应该在其子类中实现,例如TVProgram.
我确实在这里找到了对此更改的引用:
删除了抽象的静态类函数.由于疏忽,PHP 5.0.x和5.1.x允许在类中使用抽象静态函数.从PHP 5.2.x开始,只有接口才能拥有它们.
我的问题是:有人可以清楚地解释为什么在PHP中不应该有一个抽象的静态函数?