zoukankan      html  css  js  c++  java
  • php _initialize()与__construct()的区别

    _initialize()方法是在任何方法执行之前,都要执行的,当然也包括 __construct构造函数。

    也就是说如果存在_initialize()函数,调用对象的任何方法都会导致_initialize()函数的自动调用,

    而__construct()构造函数仅仅在创建对象的时候调用一次,跟其它方法调用没有关系。

    __construct这里是双划线,而_initialize()函数是单划线

    如果父子类均有_initialize()函数,则子类覆盖了父类的,如果子类没有而父类有,则子类继承父类的。

    默认情况下,子类的构造函数不会自动调用父类的构造函数。在调用子类对象的_initialize()时,也不会导致自动调用父类的_initialize()

    实际编写子类的构造函数时,一般都要加上父类构造函数的主动调用parent::__construct(),否则会导致子类对象空指针的异常,如Call to a member function assign() on a non-object。

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    逻辑回归
    异常
    内部类
    接口
    多态
    final关键字(最终的)
    不能被继承的父类成员
    对象初始化的过程
    方法重写
    abstract关键字
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452487.html
Copyright © 2011-2022 走看看