php _initialize()与__construct()的区别

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。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111461.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 决策树算法(C4.5)

    决策树算法(C4.5)

    2021年11月19日
    35
  • JAVA对象转JSON字符串时格式化日期_oracle clob转字符串

    JAVA对象转JSON字符串时格式化日期_oracle clob转字符串本案例所有代码均为原创,使用Java手写,没有借鉴其他类似工具库和网上论坛博客,也许没有经过充分测试,可能出现未知bug,因此不建议拿到正式的项目里使用。Java对象就像一个文件夹一样,没有办法知道其深度,所以采用了递归。性能方面没有测试,个人认为没有特别耗费性能的地方,除非你的对象包含很多层级。它可以支持null,字符串,数字、日期、集合等多种类型,包括以上类型的多层嵌套,都没有问题。源码不多,如下:importjava.lang.reflect.Field;importjava.lang

    2022年9月21日
    0
  • 4g通信系统的网络结构_4g通信

    4g通信系统的网络结构_4g通信1、4G通信网络的关键技术研究4G通信网络,就必须加强对其关键技术的研究,这是决定4G网络通信与3G网络通信不同的关键因素,其主要包括正交频分复用技术、软件无线电技术、智能天线技术、多输入多输出技术、IP核心网技术和多用户检测技术等。1.1正交频分复用技术所谓的正交频分复用技术,简称OFDM技术,是4G通信网络的核心技术,主要是将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。OFDM技术不同于一般性的网络技术,它可以通过相关技术将信号分开,有

    2022年9月15日
    0
  • shiro框架使用的注解_spring shiro

    shiro框架使用的注解_spring shiro使用shiro框架时出现如下bug:org.apache.shiro.authc.IncorrectCredentialsException:Submittedcredentialsfortoken[org.apache.shiro.authc.UsernamePasswordToken-admin,rememberMe=false]didnotmatchtheexpectedcredentials.可能出现此bug的原因为:1)没有设置加密算法,却进行加密配置2)虽然进

    2022年9月4日
    4
  • 2018 PyCharm环境安装教程[通俗易懂]

    2018 PyCharm环境安装教程[通俗易懂]环境准备:1.到PyCharm官网下载PyCharm安装包。2.下载了window版本的双击安装包进行安装。3.自定义软件安装路径(建议路径中不要中文字符)如:F:\DevSoftware\PyCharm2018.14.创建桌面快捷方式并关联*.py文件。5.选择开始菜单文件夹(默认即可),点击安装。6.耐心等待安装。7.安装完成,勾选立即运行PyCharm。8.选择是否导入开发环境配置文件,我…

    2022年8月27日
    0
  • Dell服务器误删阵列恢复操作

    Dell服务器误删阵列恢复操作确认机器是否阵列(此例为阵列五)已丢失,然后配置idrac配置完成退出BIOS,让机器自然运行,进不去系统没关系正常磁盘掉线状态为Foreign,目前操作是误删了阵列所以磁盘全为ready模式,Foreign那块是后加的raid0(导回即可)这边机器退出BIOS开机以后,需要idrac收集一份日志(日志系统日志与存储日志)然后排查日志,发现日志有删除动作,但是没有格式化磁盘(应该是误删操作)在误删阵列,但是没有格式化的情况下啊,大概率实现资料恢复(先确认机器之前是什.

    2022年6月15日
    89

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号