确定适当的类范围 PHP


Determining Proper Class Scope PHP

我有一个模型类ModelHome,它是Model的子级,即:

class ModelHome extends Model

模型是控制器类的变量,即:

class Controller {
    public $model;
    public function __construct () {
        $this->model = new Model;
    }
}

是否可以从 ModelHome 类内的方法访问控制器类中的方法?

我已经尝试了 parent:: 并按名称调用该类,即控制器::方法,但我似乎找不到正确的范围来访问我需要的方法。

谢谢。

-文 斯

首先,你必须有一个ModelHome的实例。如果你创建一个Model的实例,它并没有因为ModelHome存在而自动扩展ModelHome。所以,我想你的Controller::__construct()应该是:

public function __construct () {
    $this->model = new ModelHome;
}

但是,您的ModelHome不知道您的Controller类/实例。您可以在ModelHome中创建一个__construct,该采用带有指向控制器的链接的参数。喜欢这个:

class ModelHome extends Model {
    public $controller;
    public function __construct ($controller) {
        $this->controller = $controller;
    }
}
class Controller {
    public $model;
    public function __construct () {
        $this->model = new ModelHome($this);
    }
}

现在,您的模型主页通过使用$this->controller了解控制器