1. 程式人生 > >ThinkPHP實現登錄限制時__construct和_initialize的區別

ThinkPHP實現登錄限制時__construct和_initialize的區別

修改用戶 style 架構 add 通過 登錄限制 dmi class 測試

ThinkPHP支持兩種構造方法: __construct和_initialize(ThinkPHP內置的構造方法)。

測試URL為: http://oa.com/index.php/Admin/User/add

修改用戶控制器類文件UserController.class.php 如下:

技術分享圖片

1、__construct構造方法

修改中間控制器類CommonController.class.php 如下:

技術分享圖片

說明:empty() 5.5 版本之後支持表達式,否則會報如下錯誤:

技術分享圖片

運行結果如下:

技術分享圖片

中間控制器必須先構造父類,才能使用父類的方法,修改代碼如下:

技術分享圖片

運行結果:

技術分享圖片

2、_initialize構造方法,如下:

技術分享圖片

通過_initialize構造方法同樣可以實現上述效果,無需構造父類,查看基類控制器代碼如下:

技術分享圖片

通過Controller.class.php中的架構函數可以看出,只要存在 _initialize方法,就會直接調用來初始化控制器,因此ThinkPHP內置

的構造方法無需再構造父類。

ThinkPHP實現登錄限制時__construct和_initialize的區別