我如何强制扩展 class 具有静态方法?

How can i enforce an extending class to have a static method?

我基本上希望 class B 实现一个在 class A 中定义的方法。但是,当我这样做时,出现以下错误。

Strict Standards: Static function A::test() should not be abstract in C:\xampp\htdocs\test1.php on line 4

这是我的 PHP 代码:

<?php
error_reporting( E_STRICT );

abstract class A{
    public abstract static function test();
}

class B extends A {
    public  static function test(){
        echo 'Testing';
    };
}

echo B::test();

静态方法不是对象的一部分,因此不应扩展它们。

将方法具体化。

实际上,我在开始构建单元测试后就遇到了同样的问题(我现在几乎虔诚地避免使用静态方法,但那是一个完整的边际对话)。看看这个问题是否有人比我更能回答你的问题:Why does PHP 5.2+ disallow abstract static class methods?