这个问题在这里已经有了答案:
9年前关闭。
请查看以下代码以了解我的问题。
<?php
Interface IDoesSomething
{
public static function returnSomething();
}
abstract class MiddleManClass implements IDoesSomething
{
public static function doSomething()
{
return 1337 * self::returnSomething();
}
}
class SomeClass extends MiddleManClass
{
public static function returnSomething()
{
return 999;
}
}
// and now, the vicious call
$foo = SomeClass::doSomething();
/**
* results in a
* PHP Fatal error: Cannot call abstract method IDoesSomething::returnSomething()
*/
?>
有没有办法强制抽象
returnSomething()
,同时保持从抽象“中间人”类中定义的函数调用函数的可能性?对我来说似乎是 PHP 的瓶颈。 最佳答案
如果您的 php 版本 >= 5.3 然后更改
public static function doSomething()
{
return 1337 * self::returnSomething();
}
至
public static function doSomething()
{
return 1337 * static::returnSomething();
}
关于php - 从继承接口(interface)的类调用静态方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8961050/