假设我有以下(PHP供参考)
myClassA{
private $myClassB;
private $myClassC;
function __construct(){
$this->myClassB = new myClassB();
$this->myClassC = new myClassC();
}
}
让我们说myClassB
是一个数据库连接管理器,它将建立和关闭连接,但绝不会从连接中写入或读取。
我现在想用myClassC
写入通过myClassB
管理的数据库连接。我们假设myClassC
有一个名为save_user()
的函数可以保存用户数据。
save_user
是否可以包含引用myClassB
内myClassA
实例的代码。例如,如果我知道myClassC
只会在myClassA
内创建而myClassA
总是会有myClassB
来管理其连接,那么我是否可以{ {1}}包含一行代码,例如
myClassC
我想我想知道//$this refers to myClassC
$connection_to_write_to = $this->OBJECT_IM_INSIDE_OF->myClassB->db_connection_1->;
内的功能是否能够直接访问myClassC
的属性,或者我是否必须
myClassA
访问我要在myClassC->myFunction(myClassA->property_I_want)
中使用的myClassA
的属性。
答案 0 :(得分:0)
在ClassC
定义中,您应该:
class ClassC {
private parentClassB;
function __construct($classB) {
$this->parentClassB = $classB;
}
...
}
然后你的ClassA
构造函数看起来像:
function __construct(){
$this->myClassB = new myClassB();
$this->myClassC = new myClassC($this->myClassB);
}