我知道这可能看起来像一个奇怪的问题,但我说我有两个班级;
class Class1 {
private $foo;
function addBar(Class2 &$bar)
{
$this->foo = $bar;
}
}
class Class2 {
private $foo
}
$a = new Class1;
$b = new Class2;
$a->addBar($b);
Class2
有没有办法从Class1
读取信息?即使它们在这里的代码块相同,它们也在我的脚本中的单独文件中。我需要这个的原因是因为我通过引用链接了Class2
,但是Class2
不允许在Class1
之前运行,我知道我可以传递另一个变量来引用Class2
到Class1
(例如$b->addFoo($a)
),但如果可能,我宁愿避免这种情况。
我希望能做到这一点! 提前致谢
修改
感谢所有帮助过的人,我决定采取另一种方式。再次谢谢你。
答案 0 :(得分:1)
class Class1 {
private $foo;
function addBar(Class2 $bar)
{
$this->foo = $bar;
$bar->addBar($this);
}
}
class Class2 {
private $foo
function addBar(Class1 $bar)
{
$this->foo = $bar;
}
}
$a = new Class1;
$b = new Class2;
$a->addBar($b);
答案 1 :(得分:0)
Class2
可以调用Class1
个对象上的方法,但它无法访问私有数据。但它必须引用Class1
实例才能调用其上的任何方法。
您的示例并未显示实际包含任何代码的Class2
,并且听起来您正试图避免在$b
上调用方法。这没有意义。如果您从未在其上调用任何方法,则Class2
无法“执行”任何。
答案 2 :(得分:0)
class Class1 {
private $foo;
function addBar(Class2 &$bar)
{
$this->foo = $bar;
$bar->doSomething();
}
}
class Class2 {
private $foo
function doSomething()
{
//code
}
}
$a = new Class1;
$b = new Class2;
$a->addBar($b);
这种方式doSomething
Class2()
addBar()
Class1
{{1}} {/ 1}}