`

PHP的Overloading和Overriding

阅读更多

      在一台安装了PHP 5.3.17的服务器上测试网页时,发现类似下面的日志信息:

      PHP Strict Standards:  Declaration of *::*() should be compatible with that of *::*() in ...

      其中,*代表的是一个类名和一个方法名.


      在Google之后,在下面的web中找到对此问题的解释:

       Why am I getting this Strict Standards message?

      根据回答者Mchl的回答,原因在于派生的子类在对父类的方法进行override时,

更改了方法的signature(比如参数列表,访问修饰符).上面的日志信息正是指出这类问题的一个严格的错误信息.


       在解决了这个问题后,产生的新问题是,在PHP中,对Overloading和Overriding,是如何支持的?

      下面的web中,对这个问题做了一些讨论.

       function overloading and overriding in php

      对于overloading,可以进一步参看官方的文档:

      http://www.php.net/manual/en/language.oop5.overloading.php


分享到:
评论

相关推荐

    深入PHP++面向对象、模式与实践_2017英文版+最新中文版(附源码)

    方法重载(overloading)和方法重写(overriding)是实现多态的主要方式。 4. **抽象**:抽象类和接口提供了一种规范,定义了必须被子类实现的公共行为。在PHP中,可以使用`abstract class`定义抽象类,使用`...

    php之MVC以及简单封装.zip

    PHP支持方法重载(overloading),意味着可以通过不同的参数列表调用同名方法。方法重写(overriding)则是子类可以覆盖父类的同名方法,提供自己的实现。 5. **魔术方法** PHP提供了一些特殊方法,如`__get`和`_...

    PHP面相对象中的重载与重写

    重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。Overloaded的方法是可以改变返回值的类型。也就是说,重载的返回值类型可以相同也可以不同。 重载(Overloading) a、...

    PHP重载基础知识回顾

    在编程语言中,重载(Overloading)和重写(Overriding)是两个重要的概念,主要涉及函数和方法的多态性。理解这两个概念对于掌握面向对象编程至关重要。 重载,也称为函数重载,指的是在同一个作用域内可以有多个...

    PHP类型约束用法示例

    - **方法重载(Overloading)**:在PHP中,方法重载通常指通过不同的参数列表定义同名函数,实现不同功能。 - **方法覆盖(Overriding)**:在继承关系中,子类可以重新定义父类的抽象方法或已实现的方法,这就是...

    全面解析PHP面向对象的三大特征

    - 方法重载(Overloading):PHP不支持方法签名的重载,但在命名空间中可以创建同名函数,达到类似效果。 - 方法覆盖(Method Overriding):子类重写父类方法,调用时根据对象实际类型执行相应方法,体现多态性。...

    java+xml+j2ee+oracle+MVC+Struts基础知识

    重写(Overriding)是子类对父类已有的方法进行重新实现,保持方法名和参数列表一致,但可以有不同的实现逻辑。 【抽象类和接口】 抽象类用于定义共同的接口,可以包含抽象方法,即没有具体实现的方法。接口...

    ### Java:信息、使用技巧和优缺点

    Java 通过方法重载(overloading)和方法覆盖(overriding)来实现多态性。 2. **Java 开发工具**: - **Eclipse**:Eclipse 是一款非常流行的免费开源 IDE,支持 Java、C/C++、PHP 等多种语言的开发。它提供了丰富的...

    PHP面向对象编程之深入理解方法重载与方法覆盖(多态)

    关于方法重载(overloading)和方法覆盖(overriding)在PHP中的表现与实现,PHP实际上并不直接支持传统意义上的方法重载,即同一个类中不能定义多个同名但参数列表不同的方法,这种做法会引发错误。不过,PHP通过...

    2021-2022计算机二级等级考试试题及答案No.9711.docx

    - **方法重写(Overriding)**:发生于继承关系中,子类重新定义父类中具有相同名称和参数列表的方法,目的是为了实现不同的功能或者增强原有功能。重写要求子类方法的访问权限不低于父类方法,返回类型与父类相同...

    java学习笔记整理

    在Java中,多态可以通过方法覆盖(overriding)和方法重载(overloading)实现。 - **方法覆盖**: 子类中定义的方法与父类中的方法具有相同的名称、参数列表和返回类型,但行为可能不同。 - **方法重载**: 在同一个类中...

Global site tag (gtag.js) - Google Analytics