php7 方法重载,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日

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值