在寻找解决方案和模式数小时后,我该问问专业人士了。
我很想在逻辑层次结构中排序我的对象,但仍然希望能够访问父对象的属性。一个简单的例子,我希望它如何工作......
class car {
public $strType; // holds a string
public $engine; // holds the instance of another class
public function __construct(){
$this->type = "Saab";
// Trying to pass on $this to make it accessible in $this->engine
$this->engine = new engine($this);
}
}
class engine {
public $car;
public function __construct($parent){
$this->car = $parent;
}
public function start(){
// Here is where I'd love to have access to car properties and methods...
echo $this->car->$strType;
}
}
$myCar = new car();
$myCar->engine->start();
我不会实现的是引擎中的方法可以访问“父”汽车属性。我设法做到了这样,但我相信这非常非常丑陋......
$myCar = new car();
$myCar->addParent($myCar);
从 addParent 方法中,我将能够将实例传递给引擎对象。但这不可能是线索,不是吗?我的整个想法很奇怪吗?
我不希望引擎从汽车继承,因为汽车有很多方法和属性,而引擎没有。希望你明白我的意思。
希望得到提示,干杯鲍里斯