2011-06-22 40 views
4

我有一個類,它有一個方法可以返回的其他,前一個實例:類需要進入一個方法

class a { 

    public function foo() { 

    } 

    public function bar() { 
      return new b(); 
    } 

} 

的「B」類是在另一個文件,我可以這樣做:

require_once('b.php'); 

class a { 

    public function foo() { 

    } 

    public function bar() { 
      return new b(); 
    } 

} 

但我包括一個類,這不是在市長的情況下使用。我actualy做:

class a { 

    public function foo() { 

    } 

    public function bar() { 
      require_once('b.php'); 
      return new b(); 
    } 

} 

真的一個不使用要求的功能,我使用thath使用需要導入功能,但我做到這一點(而不是自動加載)的類名(我們使用的包和Don」不使用名稱空間)。

這個工程,沒有錯誤,警告,通知等等。錯了嗎?

+0

沒問題,是正確使用。但我建議使用spl_autoload_register並要求在這裏的類。 – Exos

回答

2

這很好。請確保您沒有任何不屬於類別/功能的聲明,因爲它們只會在bar()函數中執行/可用

2

我認爲這更多是個人選擇的問題。由於PHP是解釋的,與C不同,編譯器在運行前不需要知道類定義,因此您可以在代碼中的任何位置使用include指令。

兩者都有優點和缺點:如果您始終在腳本的開頭包含,您可以輕鬆找出您的類具有哪些依賴關係,但是您可能會加載不會在運行時使用的類。顯而易見,做相反的事情會產生完全相反的效果。

兩者都可以接受。

相關問題