为什么controller可以new其他的class
因为有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对象,希望你能帮我解释一下,哈哈