我的实际代码很复杂,所以这里有一个简单但相关的例子:
class base {
var $child1;
var $child2;
function xcv() {
$this->child1 = new objChild1();
$this->child2 = new objChild2();
}
}
class objChild1 {
var $fruit = "apple";
}
class objChild2 {
function getChild1Fruit() {
echo parent::child1->fruit;
}
}
相当直接,但是如果objGrandchild1想要调用child2等...那就像parent :: parent :: child1-> fruit?
该领域的任何提示都将受到赞赏
=====编辑===== 抱歉,我刚刚意识到 父 属于使用 扩展 所以可能与它无关
答案 0 :(得分:1)
你在编辑中做得对。对象没有实现正在使用的对象。但是,您可以通过参数获得此引用。
class base {
var $child1;
var $child2;
function xcv() {
$this->child1 = new objChild1();
$this->child2 = new objChild2($this);
}
}
class objChild1 {
var $fruit = "apple";
}
class objChild2 {
objChild2($parent) {
$this->parent = $parent;
}
function getChild1Fruit() {
echo $this->parent->child1->fruit;
}
}