我认为我的头衔说明了一切。在__construct()
$classA
期间,$classB
被实例化。在$classB
实例化时,它需要访问$classA
内的另一个类(即$classA->classC
)。 $classC
已经在$classA
中进行了实例化。
在$classB
的__construct()函数中,我尝试执行Global $classA;
之类的操作,以便从$classA->classC->method()
获取内容。显然$classA
尚未完成实例化,因此无法从全局范围导入。
我在无法通过Global访问$classA
时所做的工作是将$this
作为参数传递给$classB
,当它在$classA
中实例化时。这很麻烦但是有效。我想尽量避免传递$ this的混乱和hackish感觉。
有没有人有任何想法如何更好地完成我想要做的事情?
我知道这有点复杂,所以如果有人有任何想法我可以澄清它,我很乐意帮忙!
答案 0 :(得分:1)
实际上,我会说将$ this传递给ClassB很好 - 我认为递归嵌套类实例是一种非常合理的方法。
更重要的是,有没有理由像这样递归嵌套?如果您可以在构造时重新组织类以这种方式不依赖于彼此,则可以简化整个问题。
(如果没有看到代码,我无法确定地说,而且我不是100%确定我理解这个问题)