能有人請解釋這是什麼意思另一個類實例的參數中有一個類的實例:實例另一個類實例的參數中的一類
$controller = new controllerObject(new dependenciesObject());
我理解的類和類實例的基礎知識但從未見過類似上面的代碼。這是什麼意思? controllerObect是一個類,所以在參數中傳遞一個對象實例意味着什麼?
能有人請解釋這是什麼意思另一個類實例的參數中有一個類的實例:實例另一個類實例的參數中的一類
$controller = new controllerObject(new dependenciesObject());
我理解的類和類實例的基礎知識但從未見過類似上面的代碼。這是什麼意思? controllerObect是一個類,所以在參數中傳遞一個對象實例意味着什麼?
所有這一切都意味着controllerObject
構造函數接受類型爲dependenciesObject
的對象。
您實例化一個dependenciesObject
並將其用作實例化一個controllerObject
,它被分配到$controller
。如果它可以幫助你理解,這相當於:
$dependency = new dependenciesObject();
$controller = new controllerObject($dependency);
unset($dependency);
你正在做的是將$ controller分配給controllerObject的一個實例。
正如你所說的,controllerObject是一個帶有構造函數的類,它需要對下列對象的引用:dependenciesObject類型。
class controllerObject
{
function __construct(dependanciesObject $dependancies)
{
//etc
}
}
這只是意味着controllerObject
獲取傳遞給它的構造函數的另一個對象。通過這樣做 - 而不是在一個單獨的變量中實例化一個dependenciesObject
- 您不會爲傳遞的對象創建一個全局變量,從而使全局變量的數量保持最小。
一個例子是如果controllerObject
不能在沒有它的情況下運行,則將數據庫對象傳遞到controllerObject
。
與將任何其他參數傳遞給構造函數相同。例如,new controllerObject(5)
。
如果它有助於理解,用一個臨時變量:
$dependencies = new dependenciesObject();
$controller = new controllerObject($dependencies);