ThinkPHP

mac2022-06-30  30

ThinkPHP框架中的__construct和_initialize的使用

 

父类(PlatformController.class.php):

class PlatformController extends Controller{ public function __construct(){ echo 'PlatformController' . "<br>"; //调用父类的构造函数 parent::__construct(); echo 'PlatformController第二次' . "<br>"; } protected function _initialize(){ echo 'PlatformController下的_initialize'."<br>"; } }

 

子类():

class AdminController extends PlatformController{ public function __construct(){ parent::__construct(); //子类需要的逻辑代码,如果不需要,则无需加载构造函数 //...... } public function test(){ echo 'AdminController'."<br>"; } }

访问子类的test方法,输出结果:

PlatformControllerPlatformController下的_initializePlatformController第二次AdminController

结论:

(1)父类的__construct构造方法会自动调用_initialize方法。

(2)子类继承父类后,不需要写构造方法就会自动加载父类的构造函数。

(3)如果子类需要自己的构造函数,写parent::__construct(),才会加载父类构造方法,否则就不加载父类的构造方法。

 

转载于:https://www.cnblogs.com/gyfluck/p/9171976.html

相关资源:ThinkPHP中__initialize()和类的构造函数__construct()用法分析
最新回复(0)