我如何强制扩展 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?
我基本上希望 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?