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())