确定适当的类范围PHP

时间:2012-04-08 11:42:21

标签: php scope

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

class ModelHome extends Model

Model是Controller类的变量,即:

class Controller {

    public $model;

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

是否可以从ModelHome类内的方法中访问Controller类中的方法?

我尝试过parent ::并按名称调用类,即Controller ::方法,但我似乎无法找到合适的范围来访问我需要的方法。

感谢。

-Vince

1 个答案:

答案 0 :(得分:2)

首先,您必须拥有ModelHome的实例。如果您创建Model的实例,ModelHome仅因ModelHome存在而未自动扩展Controller::__construct()。所以,我想你的public function __construct () { $this->model = new ModelHome; } 应该是:

ModelHome

但是,您的Controller不知道您的__construct班级/实例。你可以在ModelHome中创建一个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

现在,您的ModelHome使用{{1}}

了解控制器