class absclass {
abstract public function fuc();
}
Run Code Online (Sandbox Code Playgroud)
报告:
PHP致命错误:类absclass包含1个抽象方法,因此必须声明为abstract或实现其余方法(absclass :: fuc)
我想知道实现其余方法意味着什么,怎么做?
请考虑以下代码:
abstract class ExampleClass
{
public static function regularStaticFunction()
{
return static::abstractStaticFunction();
}
abstract protected static function abstractStaticFunction();
}
ExampleClass::regularStaticFunction();
Run Code Online (Sandbox Code Playgroud)
PhpStorm IDE对声明的声明发出警告abstractStaticFunction
:
PHP严格标准:静态函数'abstractStaticFunction'不应该是抽象的.
静态函数不应该是抽象的.
但是,PHP在解析此类时会继续执行程序并输出以下内容:
PHP严格标准:静态函数ExampleClass :: abstractStaticFunction()在第7行的php shell代码中不应该是抽象的
在我看来,因为PHP允许对抽象类进行静态函数调用,所以不应该在抽象类上定义抽象静态函数.
为什么解释器在PHP中允许抽象静态函数,当它们是荒谬的时候?
在我看来,这两个interface
和abstract function
非常相似,
这就像一个必须实施某些方法的订单,
那有什么区别?