我基本上希望B类实现在A类中定义的方法。但是当我这样做时,我得到以下错误。
严格标准:第4行的C:\ xampp \ htdocs \ test1.php中的静态函数A :: test()不应该是抽象的
这是我的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();
答案 0 :(得分:1)
静态方法不是对象的一部分,因此它们不应该被扩展。
使方法具体化。
一旦我开始构建单元测试,我实际上就遇到了同样的问题(我现在几乎虔诚地避免使用静态方法,但这是一个完整的对话)。对于回答问题的人,请查看此问题:Why does PHP 5.2+ disallow abstract static class methods?