<?php
//file classA.php
class A {
private $B;
public $data;
public function __construct(){
$this->B = new B();
}
public function readA(){
$this->data = $this->B->readB();
print $this->data;
}
public function sendB(){
return "WORD";
}
}
//file classB.php
class B {
private $A;
public function __construct(){
$this->A = new A();
}
public function readB(){
return $this->A->sendB();
}
}
require_once .... classA.php
requier_once .... classB.php
$classA = new A();
$classA->readA();
我想使用具有多种依赖性的类。
不能使用实例方法或扩展类。
如何获取函数结果并将其从另一个函数发送回同一个类?
答案 0 :(得分:1)
你的问题是一个无限循环的对象创建:
当你创建A类时,它将创建一个B类对象,它将再次创建另一个A类对象,它将创建一个B类对象,....
- &GT;内存错误
因此,如果你在A级$this->B = new B();
中摆脱__construct()
,那么它将适应这种变化:
你有:
// in class B
public function readB(){
return $this->sendB();
}
// it needs to be:
public function readB(){
return $this->A->sendB();
}
完整的工作代码:
编辑:现在在A类中使用readA(),但是在构造函数中创建了B类。
<?php
class A {
private $B;
public $data;
public function __construct(){
// $this->B = new B();
}
public function readA(){
$this->B = new B();
$this->data = $this->B->readB();
print $this->data;
}
public function sendB(){
return "WORD";
}
}
//file classB.php
class B {
private $A;
public function __construct(){
$this->A = new A();
}
public function readB(){
return $this->A->sendB();
}
}
$B = new B();
echo $B->readB();
$A = new A();
echo $A->readA();
?>