请考虑以下代码:
class Upper {
private $lower;
function __construct($passme1, $passme2) {
if(!class_exists("Lower")) {
include 'path/to/file.php';
}
$this->lower = new Lower($passme1, $passme2);
}
//functions
public function foo() {
//queries database and returns user specific information
}
}
在链接文件中我有类Lower:
class Lower {
function __construct($passme1, $passme2) {
//sort the passed variables out
}
public function bar() {
//trying to access the public function foo of class Upper
}
}
我发现自己需要从类Lower的功能栏中访问类Upper的函数foo。
这一切都可能吗?
谢谢你,
乔
答案 0 :(得分:2)
要从Upper::foo()
访问Lower::bar()
,您必须将$this
变量作为参数传递:
在课堂下:
public function bar (Upper $upper) {
$upper->foo();
}
在上层的某种方法中:
$this->lower->bar($this);
Ps:如果您不需要访问$this
中的Upper::foo()
,则可能需要将该方法声明为static
,然后执行Lower::bar()
:< / p>
Upper::foo(); // calls static method foo of class Upper