我想獲取現有對象的實例。我如何做到這一點,而不必將對象作爲參數傳遞?這是我現在在做什麼:PHP OOP - 將對象的實例獲取到另一個類
class clas1 {
public $myArray;
public function setArray($a){
$this->myArray = $a;
}
}
class clas2 {
public $test;
function __construct($obj) {
$this->test = $obj;
}
}
$c = new clas1;
$c->setArray(array('firstname'=>'Fred'));
$c2 = new clas2($c);
var_dump($c2);
的var_dump的輸出是:
object(clas2)[2]
public 'test' =>
object(clas1)[1]
public 'myArray' =>
array
'firstname' => string 'Fred' (length=4)
我想我可以有每個對象的父對象的屬性,但是否有任何其他建議?
什麼是錯的這種方式?根據您需要對clas1實例執行的實際操作,您可能需要也可能不需要在clas2屬性中存儲實例的鏈接。 –
你現在這樣做的方式被稱爲依賴注入(http://en.wikipedia.org/wiki/Dependency_injection),實際上往往是首選的方法。 –
我希望能夠使用這些方法並訪問屬性的當前值。有沒有辦法通過做像$ test =&new $ clas1這樣的東西來獲得現有的實例?像獲得參考?請原諒我的無知......我只是把我的頭轉向OOP。看起來「笨重」必須通過對象。 – Owen