`

PHP 重载

    博客分类:
  • php
php 
阅读更多


PHP 重载
一个类中的方法与另一个方法同名,但是参数不同,这种方法称之为重载方法。
很遗憾因为 PHP 是弱类型的语言, 所以在方法的参数中本身就可以接收不同类型的数据,又因为 PHP 的方法可以接收不定个数的参数,所以在 PHP 里面没有严格意义上的方法重载。
PHP 中的重载是指在子类里面定义了一个和父类同名的方法,且该方法将在子类中将把父类的方法覆盖。
在子类中,因为从父类继承过来的方法可能无法访问子类定义的属性或方法,所以有时候重载是必要的。
例子:
<?php
class Person {
    var $name;
    var $age;

    function say() {
        echo "我的名字叫:".$this->name."<br />";
	echo "我的年龄是:".$this->age;
    }
}

// 类的继承
class Student extends Person {
    var $school;    //学生所在学校的属性
	
    function say() {
        echo "我的名字叫:".$this->name."<br />";
        echo "我的年龄是:".$this->age."<br />";
        echo "我正在".$this->school."学习";
    }	
}

$t1 = new Student();
$t1->name = "张三";
$t1->age = "18";
$t1->school = "人民大学";
$t1->say();
?>
运行该例子,输出:
我的名子叫:张三
我的年龄是:18
我正在人民大学学习
提示
如果父类定义方法时使用了 final 关键字,则不允许被子类方法覆盖。
访问父类被覆盖的方法
可以通过 :: 符号来访问父类被覆盖的方法或成员属性:
function say() {
    parent::say();
    //或者
    Person::say();
    echo "我在".$this->school."上学<br />";


分享到:
评论

相关推荐

    关于PHP属性重载问题

    关于PHP的属性重载的问题,进行测试研究,证明private不继承下来。

    PHP重载基础知识回顾

    在PHP编程语言中,"重载"这一概念与许多面向对象的语言有所不同,如Java或C++。在PHP中,重载通常指的是通过不同数量的参数来实现类似功能的一组同名函数,但由于PHP的一些特性,真正的函数重载并不被直接支持。 ...

    php5 类与对象

    PHP 支持通过 `__call()` 方法实现重载。 ```php class MethodOverloading { public function __call($method, $args) { echo "Called method $method with arguments: "; print_r($args); } } $obj = new ...

    php面向对象全攻略 (八)重载新的方法

    12.重载新的方法 在学习PHP 这种语言中你会发现,PHP 中的方法是不能重载的,所谓的方法重载就是 定义相同的方法名,通过“参数的个数”不同或“参数的类型”不同,来访问我们的相同方法 名的不同方法。但是因为PHP ...

    php继承中方法重载(覆盖)的应用场合

    在讨论PHP继承中方法重载的应用场合时,我们会遇到以下几个关键点: 1. 方法重载(覆盖)的使用时机: - 当一个父类希望子类实现特定的方法,但是父类本身并不知道该如何去实现这个方法时,就可以使用方法重载。 ...

    php-fpm重启导致的程序执行中断问题详解

    业务接口 /3/xx/vgift/send 调用礼物系统 sendPresent 接口完成送礼, 之后写mongo,但是php error log 里却查不到任何mongo异常日志 写mongo没有异常,但是库里却没记录,推断只有2个可能 1是error log 丢日志...

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

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

    解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题

    标题中的“解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题”指的是在使用PHP Opcache优化性能时,遇到的一个常见问题,即在代码更新后,Web服务器无法立即加载并执行新版本的代码。这个问题的根源在于...

    PHP使用方法重载实现动态创建属性的get和set方法

    在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能很好的区分签名。但是,可以在PHP的类中运用__call()方法来实现方法重载。当调用一个类中并不存在的方法时,会...

    PHP利用func_get_args和func_num_args函数实现函数重载实例

    在PHP中,由于其本身的特性,不支持像Java或C++那样的传统函数重载,即根据不同的参数列表定义多个同名函数。但是,通过巧妙地使用`func_get_args()`和`func_num_args()`这两个内置函数,我们可以模拟出类似的功能。...

    php-fpm-5.3.3-26.el6.x86_64.rpm

    PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。 作者:冬日大草原的黄昏 链接:https://www.jianshu.com/p/99d478ea1330 来源:简书 著作权归作者所有。商业转载请联系作者...

    php函数重载的替代方法--伪重载详解

    PHP作为一种弱类型语言,其函数重载与强类型语言中的概念有所不同。在强类型语言如Java中,函数重载允许我们定义多个同名函数,只要它们的参数类型或数量不同即可。但在PHP中,由于其弱类型特性,函数参数的类型并不...

    PHP实现重载的常用方法实例详解

    在PHP中,尽管它是一种弱类型的语言,不像Java那样直接支持函数或方法的重载,但我们可以采用一些技巧来模拟重载的效果。这里我们将详细探讨四种常用的PHP实现重载的方法。 1. **弱类型和自动类型转换** PHP的弱...

    PHP小技巧之函数重载

    PHP作为一种弱类型语言,不具备像Java、C++这样的强类型语言直接实现函数重载的能力。然而,我们仍然可以通过一些间接的方法达到类似函数重载的效果。在介绍这些方法之前,先来简单回顾一下函数重载的概念:函数重载...

    nginx windows 1.13.9 php

    nginx 1.13.9 配置了php, 包含nginx的启动,关闭,重载的bat文件和php的启动,重新加载的bat,vbs文件。php进程用的端口号是9900.默认php7的安装是c:\php7.要修改php_start.vbs中php的路径。 createobject("wscript....

    php函数重载的替代方法–伪重载详解

    在PHP编程语言中,函数重载是一个经常被讨论的话题,但是值得注意的是,PHP本身并不支持传统的函数重载,即根据传入参数的数量或类型来调用不同实现的同名函数。然而,通过一种称为“伪重载”的技术,开发者可以模拟...

    php面向对象的方法重载两种版本比较

    在PHP中,方法重载的概念和实现方式在PHP4和PHP5之间存在显著差异。 在PHP4中,由于对面向对象的支持相对有限,它并不直接支持方法重载。然而,开发人员可以通过一些技巧来模拟重载的效果。例如,可以在类的构造...

Global site tag (gtag.js) - Google Analytics