_initialize()是ThinkPHP定义的控制器初始化函数。功能类似于php原生的*__construct*。
网上很多人说用*_initialize就可以不用写parent::__construct了,这种说法是不对的。
只有当你的控制器继承了think\Controller时,你可以直接在控制器中使用_initialize(),此时会执行父类的__construct和当前类的_initialize*。
当你的控制器是作为think\Controller的子类的子类时,只会执行think\Controller的*__construct和当前类的_initialize*,并不会执行父类的*_initialize*,所以此时还是需要加parent::_initialize这句才行。
- 其实think\Controller只是在*__construct中加了一句:$this->_initialize()*而已。