首页 > 开发 > PHP > 正文

php函数重载的替代方法--伪重载详解

2024-05-04 22:37:18
字体:
来源:转载
供稿:网友

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

<? 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 ) {  case  1 :   testOne( $_arg_1 );   break ;  case  2 :   testTwo( $_arg_1,  $_arg_2 );   break ;  case  3 :   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 ) {   case  1 :   $this -> test1( $_arg [ 0 ] );   break ;  case  2 :   $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 ; }}?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表