像那樣的代碼:PHP OOP界面分類繼承
interface entite
{
}
class Foo implements entite
{
}
$foo = new foo;
if($foo instanceof entite) echo "he is";
顯示 「他」。富繼承型 「entite」 從接口 但是,當嘗試:
class FooDeleter implements deleter
{
public function __construct(Foo $Foo)
{
}
}
interface deleter
{
public function __construct(entite $entite);
}
給我:
Fatal error: Declaration of FooDeleter::__construct() must be compatible with deleter::__construct(entite $entite)
爲什麼?如何 ? =(
編輯:獨特的方式實際上是定義類型化缺失者這樣的:
class FooDeleter implements deleter
{
public function __construct(entite $Foo)
{
if($Foo instanceof Foo) { ... }
}
}
希望你的意思是「OOP接口」? – 2013-03-05 01:53:32
這是來自Big Brown Book of PHP的示例代碼。 – 2013-03-05 02:03:24
我很驚訝PHP允許您在界面中定義構造函數。對我來說似乎是一個可怕的想法。相關問題在這裏 - http://stackoverflow.com/questions/783046/constructor-methods-in-interfaces – Phil 2013-03-05 03:12:47