本文说的是php创建一个类的实例的时候,构造方法调用的问题。
php中不像java一样,创建一个class的实例的时候 会自动的首先调用父类(超类)的构造方法,以确保所有的属性都可以被正确的初始化。php 不会在本类的构造方法中再自动的调用父类的构造方法。如果真的需要调用父类的构造方法,可以手动的调用parent::__construct($params...);
class base{
function __construct(){
//do sth here....
}
}
如果我们需要些一个extender 来继承base,我们需要注意的是
1、我们是否需要调用父类的构造方法用于初始化
2、我们是否需要在父类构造方法的基础上在进行其他的一些扩展操作
3、我们不需要base构造方法中的那些初始化动作。
如果我们的extender 只满足情况1,那么我们可以省略extender的构造方法,因为父类的构造方法完全符合我们的要求,我们就没有必要再进行额外的编码。
如果我们的Extender 满足情况2,那么我们要在 Extender的 构造方法中 先调用parent::__construct(),先进行初始化,然后 在进行一些扩展操作
如果我们的Extender 满足情况3,我们可以选择不调用父类的构造方法。只是这样做有一个缺陷:我们再扩张Extender的时候,如果这个扩展类需要Base构造方法的初始化操作,这时候再调用parent::__construct() 只能调用 Extender的构造方法 而不能调用 Base 类的构造方法.
所以,个人认为,最好还是在子类的构造方法中手动的调用 父类的构造方法。
PHP经典实例(第2版)能够为您节省宝贵的Web开发时间。有了这些针对真实问题的解决方案放在手边,大多数编程难题都会迎刃而解。《PHP经典实例(第2版)》将PHP的特性与经典实例丛书的独特形式组合到一起,足以帮您成功地构建跨浏览器的Web应用程序。在这个修订版中,您可以更加方便地找到各种编程问题的解决方案,《PHP经典实例(第2版)》中内容涵盖了:表单处理;Session管理;数据库交互;使用We
470
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号