<?php //命名空间 namespace appindexcontroller; use appadmincontrollerDeer; class User{ public function func(){ echo 'index模块,User控制器,func方法'; } public function test(){ //一、调用相同模块下的不同控制器 //1.直接new类,创建对象,调用方法 $p = new Rabit(); $p->carrot(); echo '<hr>'; //2.系统方法对象 = controller(‘控制器名’),调用方法 $p = controller('Rabit'); $p->carrot(); echo '<hr>'; //二、调用不同模块下的控制器 //1.系统方法 对象 = controller('模块名/控制器名'),调用方法 $p = controller('admin/Deer'); $p->grass(); echo '<hr>'; //2.使用命名空间 $p = new appadmincontrollerDeer; $p->grass(); echo '<hr>'; //3.使用面向对象,跨模块需要引文件 $p = new Deer; $p->grass(); } public function test2(){ //一、调用相同控制器下不同方法(对象调用,本身调用,类调用,系统方法调用) $this->func(); self::func(); User::func(); action('func'); //二、调用相同模块下不同控制器下方法 //1.系统方法 对象 = action('控制器路径/方法名') $p = action('Rabit/carrot'); //2.类调用 $p = new Rabit; $p->carrot(); //三、调用不同模块下控制器的方法 //1.系统方法调用 action('admin/Deer/grass'); //2.命名空间调用 $p = new appadmincontrollerDeer; $p->grass(); } } ?>
注意:
命名空间使用反斜杠
系统方法调用则为路径,(控制器/方法名)为路径的正斜杠。