Thinkphp中的A 函數(Thinkphp3.2.3版本)


A函數是TP中實例化控制器的一個快捷函數,它的語法結構如下:

A('模塊/控制器')
//當控制器層名稱不是 Controller 時須這樣寫
A('模塊/控制器','控制器層名稱')

 

如果要調用的控制器就在當前模塊下,那么也可以按如下語法寫:

A('控制器')
//或者這樣
A('控制器','控制器層名稱')

 


通常情況下訪問控制器的實例化是自動完成的,系統會根據URL地址解析出訪問的控制器名稱自動實例化,並且調用相關的操作方法。比如我們輸入下列URL地址:

http://serverName/Home/Index/index

此時系統會自動實例化 Home/Controller/IndexController.class.php 中的 IndexController 類。但如果你需要跨控制器調用的話必須先實例化才能調用:

//假設當前在Home模塊的Index控制器下
//
實例化Home模塊的User控制器 $User = new \Home\Controller\UserController(); // 實例化Admin模塊的Blog控制器 $Blog = new \Admin\Controller\BlogController();

以上代碼如果用 A 函數的話可以簡化如下:

$User = A('User'); //因為 User 控制器就在當前模塊 Home 下,所以模塊名稱可以省略
$Blog = A('Admin/Blog');

默認情況下,A方法實例化的是默認控制器層(Controller),如果你要實例化其他的分層控制器的話(比如 Event),可以使用:

// 假設當前模塊是Home模塊
// 實例化Event控制器
$User = A('User','Event'); 
$Blog = A('Admin/Blog','Event');

上面的代碼等效於:

// 實例化Home模塊的User事件控制器
$User = new \Home\Event\UserEvent();
// 實例化Admin模塊的Blog事件控制器
$Blog = new \Admin\Event\BlogEvent();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM