TP3.2详解_initialize() 和 __construct() 的区别和联系
Posted xuzhengzong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP3.2详解_initialize() 和 __construct() 的区别和联系相关的知识,希望对你有一定的参考价值。
1、假设 一个AdminController.class.php 集成至 \Think\Controller 类,
我们来看看Controller.class.php的构造方法源码:
/** * 架构函数 取得模板对象实例 * @access public */ public function __construct() { Hook::listen(‘action_begin‘,$this->config); //实例化视图类 $this->view = Think::instance(‘Think\View‘); //控制器初始化 if(method_exists($this,‘_initialize‘)) $this->_initialize(); }
再来看看AdminController.class.php的__initalize()方法:
protected function _initialize(){ // 获取当前用户ID define(‘UID‘,is_login()); if( !UID ){// 还没登录 跳转到登录页面 $this->redirect(‘Public/login‘); } ... }
因为我们的AdminController.class.php 控制器没有写构造方法,所以它直接继承Controller的__construct()方法,
在对Admin控制器操作时候,每次都要先执行:__construct(),然后__construct() 调用它里面的 _initialize() 方法,执行代码操作。
以上是关于TP3.2详解_initialize() 和 __construct() 的区别和联系的主要内容,如果未能解决你的问题,请参考以下文章