问答详情
源自:3-5 [MVC实例]演示程序的效果并总结

关于new class的问题

为什么controller可以new其他的class

提问者:丶至尊宝 2016-03-28 22:36

个回答

  • 哇哈哈啊
    2016-03-29 09:24:11
    已采纳

    因为有require或者include把视图(viem)、模型(Model)、控制器(controller)都引入到了同一个文件中,所以最终其实都是在同一个页面执行所以能够new其他的class。

  • 丶至尊宝
    2016-04-04 14:11:51

    明白了,谢谢啦

  • 哇哈哈啊
    2016-03-31 09:15:02

    这个就是MVC单一入口模式,入口文件中会封装一个__autoload魔术方法,当你实例化一个此页面不存在的类时会触发__autoload方法,根据你实例化的类名去找这个类.你在网上好好看看这个MVC的视频教程吧!

  • 丶至尊宝
    2016-03-30 14:49:07

    你说的同一页面是?,视频上每个class是分开写的啊,不是在一个php文件里写了很多class啊,还希望你能再解释下,也许是我理解有问题。

  • 哇哈哈啊
    2016-03-29 16:45:52

    在一个页面里同时定义了两个类,在另一个类里是能实例化另上一个类的

        class Model{
            public function fun(){
                echo "这是fun";
            }
        }
        class Demo{
            public function db(){
                  $obj=new Model();
                  return $obj->fun();
            }
        }

        $obj=new Demo();
        $obj->db();

    会输出Model类的fun方法

  • 丶至尊宝
    2016-03-29 12:27:02

    有点疑惑,不是在test.php里require_once三个class,所以在test里new我能理解,我但试了下在每个class里都可以new 其他的class对象,希望你能帮我解释一下,哈哈