这里所说的重载其实是通过利用PHP一些特殊的机制来实现的,在他们的参数列表中,可以对参数赋初值,如果有初值,当调用的时候没有传入这个参数的时候,就会将初值作为参数的默认值。有默认值的参数,在调用的时候就可以不传入,我们在函数体里面判断某参数是否与默认值相同,就可以知道当前应当执行什么代码了。下面是一个示例:
<?php /** *function : 通过传入参数来自定义日期中年、月、日的分隔符号 *@intDate 整型的日期,8位 *@divSign1 : 分隔符号1(可选) *@divSign2 : 分隔符号2(可选) *@divSign3 : 分隔符号3(可选) *author : waitatlee@163.com *create in : 2009-10-18 *version: 1.0 */ function changeDateFormat($intDate,$divSign1=null,$divSign2=null,$divSign3=null){//通过两个可选参数实现PHP所不支持的重载 if($divSign2==null && $divSign3==null){//当后两个参数为空时表示只通过一个分隔符来格式化日期 if($divSign1==null){//如果只有一个参数(没有分隔符参数),则表示这是一个已经加了分隔符的日期数据,就将分隔符去掉,还原成原来的格式 return substr($intDate,0,4).substr($intDate,5,2).substr($intDate,7,2); }else{//如果有两个参数,则第二个作为分隔符参数分别用来分隔年和月,月和日 return substr($intDate,0,4)."$divSign1".substr($intDate,4,2)."$divSign1".substr($intDate,6,2); } }else{//当后两个参数为空时表示通过三个分隔符来格式化日期 return substr($intDate,0,4)."$divSign1".substr($intDate,4,2)."$divSign2".substr($intDate,6,2)."$divSign3"; } }
那在调用的时候怎样体现出重载的呢?看看下面的例子就知道了:
调用语句: 返回
changeDateFormat(20091018); 2009-10-18
changeDateFormat(20091018,"/"); 2009/10/18
changeDateFormat(20091018,"/","-"); 2009/10-18
changeDateFormat(20091018,"年","月","日"); 2009年10月18日
您还没有登录,请您登录后再发表评论
在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能很好的区分签名。但是,可以在PHP的类中运用__call()方法来实现方法重载。当调用一个类中并不存在的方法时,会...
本文实例讲述了PHP实现重载的常用方法。分享给大家供大家参考,具体如下: php是弱类型语言,并没有像JAVA这种强类型语言一样有重载。 重载一般来说就是拥有相同的函数名或方法名,但是参数列表却不同(包括参数个数...
主要介绍了PHP利用func_get_args和func_num_args函数实现函数重载的方法,实例展示了PHP实现重载的具体方法,是非常实用的技巧,需要的朋友可以参考下
本文实例讲述了PHP实现的函数重载功能。分享给大家供大家参考,具体如下: 由于PHP是弱类型语言,因此函数的输入参数类型无法确定(可以使用类型暗示,但是类型暗示无法用在诸如整型,字符串之类的标量类型上),...
主要介绍了php 使用 __call实现重载功能,结合实例形式分析了PHP使用__call实现重载的相关操作技巧,需要的朋友可以参考下
多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应...php //根据参数个数选择执行不同的方法(在 PHP4 中模拟”重载”(多态的一种) c
对于弱类型语言来说,PHP函数重载,并不像一般的OOP那样。而弱类型本来就不区分,所以无法通过这些来实现。但是,可以通过下面的方法来实现简单的伪重载吧。
主要介绍了PHP面向对象编程之深入理解方法重载与方法覆盖(多态)的相关资料,需要的朋友可以参考下
本文实例讲述了PHP面向对象程序设计重载...是通过魔术方法(magic methods)来实现的。 一般来说,把类中的成员属性都定义为private的,这更符合现实的逻辑,能够更好的对类中成员起到保护作用。但是,对成员属性的读取
重载是通过魔术方法来实现的。这些魔术方法的参数不能饮用传递,__get(),__set(),__isset(),__unset(),实现类属性重载。 2、当访问类中不可访问的属性时,将调用__get()方法 3、当访问类中不可访问的属性时,根据...
方法重载举例 6 结论 8 用PHP与XML联手进行网站编程 8 小序 8 HTML的局限性分析 8 XML的组成 9 PHP对XML的支持 10 案例解析 12 PHP中的模板技术 15 如何使用PHPLIB模板? 15 如何使用嵌套的模板? 16 PHPLIB模板如何...
php 作为一种弱类型语言,本身不能像强类型如java ,c++那样,直接的实现重载。不过可以通过一些方法,间接的实现重载。
重载中说的参数不同有三种情况:参数个数不同,参数类型不同,参数顺序不同。重写一般指函数的覆盖,即相同签名的成员函数在子类中重新定义(实现抽象函数或接口不是重写),是实现多态(polymorphism)的一种关键...
相关推荐
在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能很好的区分签名。但是,可以在PHP的类中运用__call()方法来实现方法重载。当调用一个类中并不存在的方法时,会...
本文实例讲述了PHP实现重载的常用方法。分享给大家供大家参考,具体如下: php是弱类型语言,并没有像JAVA这种强类型语言一样有重载。 重载一般来说就是拥有相同的函数名或方法名,但是参数列表却不同(包括参数个数...
主要介绍了PHP利用func_get_args和func_num_args函数实现函数重载的方法,实例展示了PHP实现重载的具体方法,是非常实用的技巧,需要的朋友可以参考下
本文实例讲述了PHP实现的函数重载功能。分享给大家供大家参考,具体如下: 由于PHP是弱类型语言,因此函数的输入参数类型无法确定(可以使用类型暗示,但是类型暗示无法用在诸如整型,字符串之类的标量类型上),...
主要介绍了php 使用 __call实现重载功能,结合实例形式分析了PHP使用__call实现重载的相关操作技巧,需要的朋友可以参考下
多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应...php //根据参数个数选择执行不同的方法(在 PHP4 中模拟”重载”(多态的一种) c
对于弱类型语言来说,PHP函数重载,并不像一般的OOP那样。而弱类型本来就不区分,所以无法通过这些来实现。但是,可以通过下面的方法来实现简单的伪重载吧。
主要介绍了PHP面向对象编程之深入理解方法重载与方法覆盖(多态)的相关资料,需要的朋友可以参考下
本文实例讲述了PHP面向对象程序设计重载...是通过魔术方法(magic methods)来实现的。 一般来说,把类中的成员属性都定义为private的,这更符合现实的逻辑,能够更好的对类中成员起到保护作用。但是,对成员属性的读取
重载是通过魔术方法来实现的。这些魔术方法的参数不能饮用传递,__get(),__set(),__isset(),__unset(),实现类属性重载。 2、当访问类中不可访问的属性时,将调用__get()方法 3、当访问类中不可访问的属性时,根据...
方法重载举例 6 结论 8 用PHP与XML联手进行网站编程 8 小序 8 HTML的局限性分析 8 XML的组成 9 PHP对XML的支持 10 案例解析 12 PHP中的模板技术 15 如何使用PHPLIB模板? 15 如何使用嵌套的模板? 16 PHPLIB模板如何...
php 作为一种弱类型语言,本身不能像强类型如java ,c++那样,直接的实现重载。不过可以通过一些方法,间接的实现重载。
重载中说的参数不同有三种情况:参数个数不同,参数类型不同,参数顺序不同。重写一般指函数的覆盖,即相同签名的成员函数在子类中重新定义(实现抽象函数或接口不是重写),是实现多态(polymorphism)的一种关键...