_initialize()方法是在任何方法执行之前执行的,当然也包括__construct构造函数。也就是说,如果有_initialize()函数,调用对象的任何方法都会引起_initialize()函数的自动调用,而__construct()构造函数只在对象创建时被调用一次,并且具有与其他方法调用无关。这里的__construct是双破折号,而_initialize()函数是单破折号。如果父类和子类都有_initialize()函数,则子类会覆盖父类。如果子类没有父类,则子类继承父类。默认情况下,子类构造函数不会自动调用超类构造函数。调用子类对象的_initialize()时,不会自动调用父类的_initialize()。在实际编写子类的构造函数时,一般需要加上父类构造函数的主动调用parent::__construct(),否则会导致子类对象空指针的异常,比如Calltoamemberfunction在非对象上分配()。因此,在一些系统后台管理或评论功能中,可以将相关的controller扩展到basecontroller:Base.php:error('请先登录系统!','登录/索引');}}}Article.php
