2012-11-22 231 views
0

能有人請解釋這是什麼意思另一個類實例的參數中有一個類的實例:實例另一個類實例的參數中的一類

$controller = new controllerObject(new dependenciesObject()); 

我理解的類和類實例的基礎知識但從未見過類似上面的代碼。這是什麼意思? controllerObect是一個類,所以在參數中傳遞一個對象實例意味着什麼?

回答

0

所有這一切都意味着controllerObject構造函數接受類型爲dependenciesObject的對象。

您實例化一個dependenciesObject並將其用作實例化一個controllerObject,它被分配到$controller。如果它可以幫助你理解,這相當於:

$dependency = new dependenciesObject(); 
$controller = new controllerObject($dependency); 
unset($dependency); 
0

你正在做的是將$ controller分配給controllerObject的一個實例。

正如你所說的,controllerObject是一個帶有構造函數的類,它需要對下列對象的引用:dependenciesObject類型。

 class controllerObject 
     { 
      function __construct(dependanciesObject $dependancies) 
      { 
       //etc 
      } 
     } 
0

這只是意味着controllerObject獲取傳遞給它的構造函數的另一個對象。通過這樣做 - 而不是在一個單獨的變量中實例化一個dependenciesObject - 您不會爲傳遞的對象創建一個全局變量,從而使全局變量的數量保持最小。

一個例子是如果controllerObject不能在沒有它的情況下運行,則將數據庫對象傳遞到controllerObject

0

與將任何其他參數傳遞給構造函數相同。例如,new controllerObject(5)

如果它有助於理解,用一個臨時變量:

$dependencies = new dependenciesObject(); 
$controller = new controllerObject($dependencies); 
相關問題