2016-11-12 101 views
-2

下面的例子,我想每個類與以前包括類擴展,我知道這一點:PHP類擴展動態

Base.php

class Base { 

protected function foo() 
{ 
    echo 'I am baseclass'; 
} 

} 

Child1.php

class Child1 { 

protected function foo() 
{ 
    echo 'I am child1'; 
} 

} 

Child2.php

class Child2 { 

protected function foo() 
{ 
    echo 'I am child2'; 
} 

} 

我的最後一節課會Mymodule中

Mymodule.php

哪些應該做以下無需手動延長:

Child1 extends Base, 
Child2 extends Child1 
Child2 extends Mymodule 

像這可能動態?因爲我有這樣的11班,我最後需要Mymodule請指導我。

+0

您是否想要在不寫入的情況下擴展'Base'「extends Base'」?我想知道爲什麼。 –

+0

是的,你是對的我有很多文件我想擴展每個以前加載的文件 – user3637224

+0

@RuslanOsmanov:我希望你明白我的意思,我不想每次寫「擴展」,但最後模塊類應該按名稱加載每個類(我將給出數組中的文件列表),並且應該用前一個擴展每個類。 – user3637224

回答

1

您的代碼顯示Child2類擴展了Child1和mymodule類。 PHP不允許多重繼承,所以一個類只能擴展一個類。

Php 5.4引入了一個叫做Traits的特性。它允許一個類繼承多個被定義爲特徵的類:http://php.net/manual/en/language.oop5.traits.php。如果您將Child1和mymodule類定義爲特徵,那麼您可以從Child1和mymodule擴展Child2類