我需要跟蹤哪個實例創建了另一個實例。這是一個實例化的層次結構,而不是父子級的層次結構。這裏有一個例子:我如何獲得在php中創建另一個對象實例的實例?
class Car{
private var $engine;
private var $id;
public function __construct(){
$this->id = nextId();
$this->engine = new Engine(500);
}
}
class Engine{
private var $horsepower;
private var $id;
public function __construct($hp){
$this->id = nextId();
$this->horsepower = $hp;
}
}
如果我這樣做:
$myCar1 = new Car();
$myEngine = new Engine(200);
我現在有車的1個實例和發動機2。我需要知道哪個實例創建了哪個實例。像這樣:
$creator = instanceCreatorOf($myCar1->engine or $myCar1->engine->id);
會返回:$ myCar或$ myCar-> id;
,但如果我這樣做:
$creator = instanceCreatorOf($myEngine or $myEngine->id);
將返回:根或空或0;
我需要跟蹤這個,但有很多動態創建的對象,我需要動態跟蹤這個層次結構。有任何想法嗎? 謝謝!
西安這個工程。不過,我需要一個更全面的方法,可能是跟蹤每個新Object()的另一個類;調用時無需在每個對象的每個構造函數中添加引用。謝謝! – Juank 2010-01-04 17:38:27
在我看來,西安給出了你問的問題的答案:每輛車都知道它創建了哪個引擎實例,每個引擎都知道它是由哪個汽車實例創建的。也許你打算提出一個不同的問題? – 2010-01-04 20:32:49