详细信息 您现在的位置是:首页 > ThinkPHP

thinkphp的construct和initialize的区别及使用

来源: 发布时间:2021-07-06 1043 人已围观

摘要类需要初始化一些东西的时候就会用到construct和initialize,这两位分别用在那儿里及区别是什么?

类需要初始化一些东西的时候就会用到construct和initialize,这两位分别用在那儿里及区别是什么?

(1)_initialize()函数是在任何方法执行之前,都要执行的,当然也包括_ _construct构造函数,注意,_ _construct这里是双划线,而_initialize()函数是单划线。

(2)如果父子类均有_initialize()函数,则子类覆盖了父类的,如果子类没有而父类有,则子类继承父类的。在调用子类对象的_initialize()时,不会导致自动调用父类的_initialize()。

(3)默认情况下,子类的构造函数也不会自动调用父类的构造函数,这一点与Java不同。实际编写子类的构造函数时,一般都要加上父类构造函数的主动调用parent::_ _construct(),否则会导致子类对象空指针的异常,如Call to a member function assign() on a non-object。

(4)_initialize()函数是在“任何”方法调用之前都要调用的,也就是说如果存在_initialize()函数,调用对象的任何方法都会导致_initialize()函数的自动调用,而_ _construct构造函数仅仅在创建对象的时候调用一次,跟其它方法调用没有关系。



站点信息

  • 电话:15226178738
  • QQ:1697915848
  • 邮箱:1697915848@qq.com