initialize()函数的出现是为了我们可以在子类中同时调用父类与子类的构造函数。
想要搞明白最简单方法的就是打开TP的源码,最靠谱。
路径:ThinkPHP3.2.3/ThinkPHP/Library/Think/Controller.class.php.(△Controller是一个抽象类△)
我们可以看到
/**
* 架构函数 取得模板对象实例
* @access public
*/
public function __construct() {
Hook::listen('action_begin',$this->config);
//实例化视图类
$this->view = Think::instance('Think\View');
//控制器初始化
if(method_exists($this,'_initialize'))
$this->_initialize();
}
可以看出,_initialize()具备构造函数的功能纯粹是因为它正好在__construct()里而已(当实例化类时,构造函数__construct运行,如果当前类存在_initialize()方法,顺带执行了_initialize())