__construct 与 _initialize 方法的区别

  • __construct是PHP类中的构造函数,_initialize是ThinkPHP中的初始化方法。
  • 子类被实例化时,如果父类子类都有构造函数,调用父类的构造函数需要parent::_construct。
  • 如果仅仅父类有构造函数,则会自动触发父类的构造函数,父类的构造函数会判断子类有没有_initialize函数,有则执行此函数。
  • 所以ThinkPHP的子类用_initialize方法来执行子类实例化时的初始化操作,这样写就省略了在使用__construct函数时需要加上parent::__construct这句话。
  • 如果子类没有调用parent::__construct这句话,会让父类中的__construct中判断_initialize是否存在 之前的代码不执行。
  • 看下面代码,你就明白了。
public function __construct() {
    tag('action_begin',$this->config);
    //实例化视图类
    $this->view     = Think::instance('View');           
    //控制器初始化
    if(method_exists($this,'_initialize'))
        $this->_initialize();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值