天天看点

PHP的“重载方法”

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()能将传进来的参数转化为数组,通过数组的操作巧妙实现“重载”功能。