【发布时间】:2011-01-26 06:35:27
【问题描述】:
有没有办法遍历一个对象来获取父对象的数据? 对于“父对象”,我不是指父类,而是字面上的对象。 这是一个例子,在 javascripty 世界中:-) :
$parent->test = "hello world!";
$parent->child = new B();
如果我可以访问子对象中父级的所有数据,那就太好了:
class B{
//I know this doesn't exists, but it's what I wanted do do
function B(){
$this->parent = $this->parent();
echo $this->parent->test; //it would ouput "hello world"
}
}
目前我的解决方案是将父对象传递给子对象(作为参考)或使父对象成为全局对象。 你有更好的解决方案吗?
谢谢!
【问题讨论】:
-
这只是两个相互引用的对象。你可以称他们为父母和孩子。
-
为什么需要孩子引用它的父母?父母中是否有孩子也需要访问的东西?如果是这样,你最好将它可能需要的任何东西传递给孩子,而不是试图从父母那里得到它。
-
我在父级中有一个“隐私对象”,然后在子级中需要一些变量,并且将它们全部传递下去会很乏味...
-
$child = new B($parent->privacy);会工作? B()的实例需要是$parent的类属性吗?
-
是的,但这还不够:我需要 $child = new B($parent->user, $parent->privacy, $parent->url);然后为方便起见,我切换到 $child = new B($parent);