PHP:较低层次结构类从上层次结构类访问公共函数

时间:2013-04-17 17:03:00

标签: php oop scope hierarchy

请考虑以下代码:

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。

这一切都可能吗?

谢谢你,

1 个答案:

答案 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