請看看下面的代碼來了解我的問題。
<?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的瓶頸給我。
我的問題是根本不同的,儘管答案是相同的。 – Daniel
你的具體問題有些(不是根本上)不同,但抽象問題(LSB)是相同的。 – Gordon