PHP 函数重载

原创 2011年01月10日 14:01:00

对于弱类型语言来说,PHP函数重载,并不像一般的OOP那样。

因为函数重载必须满足两个条件:

1、函数参数的个数不一样。

2、参数的类型不一样。

这两点,PHP都没有办法满足,您可以对函数多添加参数,只是相当于多传了个临时变量。而弱类型本来就不区分,所以无法通过这些来实现。

但是,可以通过下面的方法来实现简单的伪重载吧。

1、默认参数

从这个上面就可以看到,如果一个函数里面,我对不是必须参数填写添加相应的默认值,就可以完成相应的功能。

2、利用函数func_get_args()和call_user_func_array(),详细的帮助参照PHP手册。

利用一个有规则的函数进行调用,以方便统一管理。

3、利用__call($name, $arg) 函数进行处理。


总结,这几种方法,都可以实现伪重载,基本第2种和第3种,内容可以相互处理判断。

文中只是给出了方法,可能还有许多细节地方需要处理,比如,判断整型、类别等。

不过,根据上面的内容,php可能永远不会出现真正的重载,那样就会失去语言本身的意义了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

php函数重载与构造函数重载

class A {      function __call ($name, $args )     {     ...

php面向对象之重载(overloading)

在java中,重载就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法,这也牵涉到了多态。 在PHP中呢,有人说php没有多态,那重...

关于PHP中类方法的重载问题

重载:是类的多态的一种实现。函数重载指一个标识符被用作多个函数名,且能够通过函数的参数个数或参数类型将这些同名的函数区分开来,调用不发生混淆。这样做的主要好处就是,不用为了对不同的参数类型或参数个数,...

PHP面向对象之重写与重载

<?php /*** ====笔记部分==== 重写/覆盖 override 指:子类重写了父类的同名方法 重载: overload 重载是指:存在多个同名方法,但参数类型/个数不同. ...

PHP面向对象编程之--多态:方法重载与重写

重载 基本概念: 函数名一样,通过函数的参数个数或者是参数类型不同,达到调用同一个函数名, 但是可以区分不同的函数 PHP5 中可以通过魔术函数来实现方法重载的效果。 代码...

php面向对象之重写(override)

在PHP中,如果从父类继承的成员不能满足子类的需求,可以对其进行改写,这个过程称为覆盖(override),也称重写。  分为属性的重写和方法的重写。 因为PHP是弱类型的语言, 所以在方法的参数中本...

php深入学习三——面向对象以及函数重载

本文仅就Php面向对象的函数重载(多态)作介绍。并给出一段实例代码和控制台输出结果,并对其运行过程作相对详细的讲解。便于理解。但注意需要自己多做不同的尝试,举一反三。

关于PHP中func_get_args()、func_get_arg()、func_num_args()的使用(PHP函数重载)

本人这几天刚接触JS,当学到argument对象的时候,联想到了PHP中的函数的重载,其中比较关键的三个函数func_get_args()、func_get_arg()、func_num_args()...

C++函数重载

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)