PHP MVC:是否需要传递模型对象以查看对象?

时间:2018-07-11 07:04:43

标签: php model-view-controller

我正在用php学习MVC。 我看到了以下示例PHP MVC示例

$model = new Model();
$controller = new Controller($model);
$view = new View($controller, $model); // $model already inside $controller!

如果您注意到代码,$ controller对象已经包含$ model。那么$ view可以通过$ controller访问数据$ model。那么为什么我们需要再次将$ model对象和$ controller一起传递到$ view中呢?请帮忙。

1 个答案:

答案 0 :(得分:0)

代码示例:

class UserModel
{
   public function getUserId()
   {
      return 100500;
   }

   public function getUserAddress()
   {
      return /*here is some data*/
   }
}

class Controller 
{
    private $userId;

    public function __construct(UserModel $model)
    {
        $this->userId = $model->getUserId();
    }
}

$controller = new Controller(UserModel);

如您所见,我们在控制器内部没有模型UserModel(只有id)。但是,如果您需要功能getUserAddress()怎么办?您必须将物体放入其中