php函数重载的替代方法--伪重载详解
函数重载的替代方法-伪重载,下面看一个具体的实例代码。
<?php //函数重载的替代方法-伪重载 // //确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数 //在看到了func_get_arg,func_get_args,func_num_args,这三个函数的时候,你们是不是想起了什么? functiontestOne($a){ echo('一个参数就这样'); } functiontestTwo($a,$b){ echo('两个参数的就这样'); } functiontestThree($a,$b,$c){ echo('黑黑,这是三个参数的'); } functiontest(){ $argNum=func_num_args(); //这一段其实可以用$_arg=func_get_args()来获得所有的参数,只是要用数组而已,不方便我下面的表达,呵呵 for($i=0;$i<$argNum;$i++){ $_arg_{$i}=func_get_arg($i); } switch($argNum){ case1: testOne($_arg_1); break; case2: testTwo($_arg_1,$_arg_2); break; case3: testThree($_arg_1,$_arg_2,$_arg_3); break; default: echo('这是没有参数的情况'); break; } } test(); echo(''); test(1); echo(''); test(1,2); echo(''); test(1,2,3); //这些只是在函数中的运用,其实最主要的还是在类中的运用 //如果这些用到类里面我就不需要担心构造函数是否有几个参数了,不是吗? classtest{ var$a=0; var$b=0; functiontest(){ $argNum=func_num_args(); $_arg=func_get_args(); switch($argNum){ case1: $this->test1($_arg[0]); break; case2: $this->test2($_arg[0],$_arg[1]); break; default: $this->a=0; $this->b=1; break; } } functiontest1($a){ $this->a=$a; } functiontest2($a,$b){ $this->a=$a; $this->b=$b; } } ?>
以上所述就是本文的全部内容了,希望大家能够喜欢。