2012-08-03 80 views
16

我想知道是否在擴展一個已經'使用'關鍵字的類來使用特定命名空間的情況下 - 我是否需要在繼承類之上添加另一個'use'以使用相同的命名空間?像這樣的情況:PHP:擴展類是否需要另一個'use'來調用命名空間?

namespace Core; 

use System\Plugin; 

class Front extends Application { } 
的控制器,它直接調用沒有命名空間

,現在(使用完整路徑):

use System\Plugin; 

class PageController extends Front { } 

或將不「用」的工作以及與讓我使用System \ Plugin命名空間:

class PageController extends Front { } 

回答

18

不,您需要兩個文件中的「使用」語句。使用是文件級關鍵字,不受繼承的影響。

請參閱scoping rules for importing以及描述我在手冊頁底部所說的內容的小方塊。

+0

很明顯,如果在Front類中,我已經在Plugin命名空間中實例化了一個對象,那麼我可以在繼承類中不使用「System \ Plugin」的情況下使用它。 – 2012-08-03 11:41:51

+0

當然,你也不總是需要使用聲明。使用完全限定名稱空間也適用。 – Lusitanian 2012-08-03 11:45:24

+6

如果類可以繼承父類的'use'語句,那麼它會很好(即DRYer) – hohner 2013-06-26 18:52:06

相關問題