课程
/后端开发
/PHP
/MVC架构模式分析与设计
为什么controller可以new其他的class
2016-03-28
源自:MVC架构模式分析与设计 3-5
正在回答
因为有require或者include把视图(viem)、模型(Model)、控制器(controller)都引入到了同一个文件中,所以最终其实都是在同一个页面执行所以能够new其他的class。
明白了,谢谢啦
这个就是MVC单一入口模式,入口文件中会封装一个__autoload魔术方法,当你实例化一个此页面不存在的类时会触发__autoload方法,根据你实例化的类名去找这个类.你在网上好好看看这个MVC的视频教程吧!
你说的同一页面是?,视频上每个class是分开写的啊,不是在一个php文件里写了很多class啊,还希望你能再解释下,也许是我理解有问题。
在一个页面里同时定义了两个类,在另一个类里是能实例化另上一个类的
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方法
有点疑惑,不是在test.php里require_once三个class,所以在test里new我能理解,我但试了下在每个class里都可以new 其他的class对象,希望你能帮我解释一下,哈哈
举报
通过学习MVC理论知识,由浅入深带您实现人生第一个MVC框架
1 回答关于eval的问题
2 回答关于登陆的问题
2 回答关于PHP和JAVA的问题
1 回答关于配置问题
1 回答关于路径问题