0

下面的课程工作正常,试图学习 MVC,我只想知道为什么。这可能很简单,但我无法理解。

  1. 所以在控制器类中我已经启动了 View 对象(在其他地方定义)并分配给 $this->view。现在为什么这没有给我任何错误,因为我没有在控制器类的任何地方定义视图属性,它也没有扩展。

  2. 与错误类相同。为什么 $this->view->msg 工作正常,因为 msg 属性没有在父级和错误控制器本身的任何地方定义。

这些是如何在运行中工作的。

        <?php

    class Controller {

        function __construct() {
            echo 'main controller <br/>';
            $this->view = new View();
        }

    }

?>

扩展控制器的错误类

    <?php

class Error extends Controller {

    function __construct() {
        parent::__construct();
        echo 'This is error mate';
        $this->view->msg = 'This page does not exit by msg';
        $this->view->render('error/index');
    }

}

?>
4

1 回答 1

4

可以随时为对象动态添加属性,不需要提前声明;如果你愿意,就像常规变量一样。就这样。

缺点是这些属性将是public,您可能不希望这样做,而且这是不好的做法,因为它使类的结构不那么明显。

于 2013-06-09T17:44:09.993 回答