码迷,mamicode.com
首页 > 其他好文 > 详细

【TP3.2】详解_initialize() 和 __construct() 的区别和联系

时间:2018-04-26 18:27:01      阅读:1578      评论:0      收藏:0      [点我收藏+]

标签:style   color   调用   eth   think   直接   一个   font   cte   

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() 的区别和联系

标签:style   color   调用   eth   think   直接   一个   font   cte   

原文地址:https://www.cnblogs.com/xuzhengzong/p/8953665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!