<?php //命名空間 namespace app\index\controller; use app\admin\controller\Deer; 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 \app\admin\controller\Deer; $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 \app\admin\controller\Deer; $p->grass(); } } ?>
注意:
命名空間使用反斜杠\
系統方法調用則為路徑,(控制器/方法名)為路徑的正斜杠。