Welcome 微信登录

首页 / 网页编程 / PHP / php函数重载的替代方法--伪重载详解

函数重载的替代方法-伪重载,下面看一个具体的实例代码。

<? php//函数重载的替代方法-伪重载////确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数//在看到了func_get_arg,func_get_args,func_num_args,这三个函数的时候,你们是不是想起了什么?function testOne ( $a ) { echo (" 一个参数就这样 ");}function testTwo ( $a ,$b ){ echo (" 两个参数的就这样 ");}function testThree ($a,$b,$c ) { echo (" 黑黑,这是三个参数的 ");}function test () { $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 );// 这些只是在函数中的运用,其实最主要的还是在类中的运用//如果这些用到类里面我就不需要担心构造函数是否有几个参数了,不是吗?class test { var$a=0 ; var$b=0 ; function test () {$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 ;} } function test1 ($a) {$this -> a =$a ; } function test2 ($a,$b) {$this -> a =$a ;$this -> b =$b ; }}?>
以上所述就是本文的全部内容了,希望大家能够喜欢。