PHP可以有重写(覆盖)方法,但却没有重载方法,如果我们需要“重载”这样的功能,怎么办呢?
重载方法是函数名一样,函数类型,参数个数,参数类型不完全一样的方法。
利用func_get_args()函数可以实现“重载”功能,请看如下代码:
<?php
class calculate{
public function overload(){
$arr = func_get_args();
$count = count(func_get_args());
switch($count){
case 1:
echo ($arr[0] * 3.14);
break;
case 2:
echo ($arr[0] * $arr[1]);
break;
}
}
}
$ob = new calculate();
$ob->overload(2); echo '<br/>';
$ob->overload(2,3);
?>
运行结果:
6.28
6
【归纳总结】func_get_args()能将传进来的参数转化为数组,通过数组的操作巧妙实现“重载”功能。