<? php
  2 PHP的伪重载
  3 PHP的伪重载
  4 PHP的伪重载// 今天在看书的时候,发现书上有这么一条:函数重载的替代方法————伪重载
  5 PHP的伪重载//
  6 PHP的伪重载//确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数
  7 PHP的伪重载//在看到了func_get_arg,func_get_args,func_num_args,这三个函数的时候,你们是不是想起了什么?
  8 PHP的伪重载//SO,let's try itPHP的伪重载..
  9 PHP的伪重载
 10 PHP的伪重载  function  testOne (  $a  )
 11 PHP的伪重载 {
 12 PHP的伪重载   echo ' 一个参数就这样 '  );
 13 PHP的伪重载 }
 14 PHP的伪重载
 15 PHP的伪重载  function  testTwo (  $a   ,   $b )
 16 PHP的伪重载 {
 17 PHP的伪重载   echo ' 两个参数的就这样 '  );
 18 PHP的伪重载 }
 19 PHP的伪重载
 20 PHP的伪重载  function  testThree (  $a   ,   $b   ,   $c )
 21 PHP的伪重载 {
 22 PHP的伪重载   echo ' 黑黑,这是三个参数的 '  );
 23 PHP的伪重载 }
 24 PHP的伪重载
 25 PHP的伪重载  function  test ()
 26 PHP的伪重载 {
 27 PHP的伪重载   $argNum   =   func_num_args ();
 28 PHP的伪重载   // 这一段其实可以用 $_arg = func_get_args() 来获得所有的参数,只是要用数组而已,不方便我下面的表达,呵呵
 29 PHP的伪重载   for  (  $i   =   0 $i   <   $argNum $i ++  )
 30 PHP的伪重载  {
 31 PHP的伪重载    $_arg_ { $i =   func_get_arg $i  );
 32 PHP的伪重载  }
 33 PHP的伪重载   switch  (  $argNum  )
 34 PHP的伪重载  {
 35 PHP的伪重载    case   1 :
 36 PHP的伪重载    testOne(  $_arg_1  );
 37 PHP的伪重载     break ;
 38 PHP的伪重载    case   2 :
 39 PHP的伪重载    testTwo(  $_arg_1   ,   $_arg_2  );
 40 PHP的伪重载     break ;
 41 PHP的伪重载    case   3 :
 42 PHP的伪重载    testThree(  $_arg_1   ,   $_arg_2   ,   $_arg_3  );
 43 PHP的伪重载     break ;
 44 PHP的伪重载    default :
 45 PHP的伪重载     echo ' 这是没有参数的情况 '  );
 46 PHP的伪重载     break ;
 47 PHP的伪重载  }
 48 PHP的伪重载 }
 49 PHP的伪重载
 50 PHP的伪重载  /* *
 51 PHP的伪重载  * 例子的实现
 52 PHP的伪重载  *
 53 PHP的伪重载   */
 54 PHP的伪重载 test();
 55 PHP的伪重载  echo ' <br> '  );
 56 PHP的伪重载 test( 1 );
 57 PHP的伪重载  echo ' <br> '  );
 58 PHP的伪重载 test( 1 , 2 );
 59 PHP的伪重载  echo ' <br> '  );
 60 PHP的伪重载 test( 1 , 2 , 3 );
 61 PHP的伪重载
 62 PHP的伪重载
 63 PHP的伪重载
 64 PHP的伪重载// 这些只是在函数中的运用,其实最主要的还是在类中的运用
 65 PHP的伪重载//如果这些用到类里面我就不需要担心构造函数是否有几个参数了,不是吗?
 66 PHP的伪重载//类里面的运用只举一个简单的例子
 67 PHP的伪重载
 68 PHP的伪重载  class  test
 69 PHP的伪重载 {
 70 PHP的伪重载   var   $a   =   0 ;
 71 PHP的伪重载   var   $b   =   0 ;
 72 PHP的伪重载
 73 PHP的伪重载   function  test ()
 74 PHP的伪重载  {
 75 PHP的伪重载    $argNum   =   func_num_args ();
 76 PHP的伪重载    $_arg   =   func_get_args ();
 77 PHP的伪重载    switch  (  $argNum  )
 78 PHP的伪重载   {
 79 PHP的伪重载     case   1 :
 80 PHP的伪重载      $this -> test1(  $_arg [ 0 ] );
 81 PHP的伪重载      break ;
 82 PHP的伪重载     case   2 :
 83 PHP的伪重载      $this -> test2(  $_arg [ 0 ,   $_arg [ 1 ]);
 84 PHP的伪重载      break ;
 85 PHP的伪重载     default :
 86 PHP的伪重载      $this -> =   0 ;
 87 PHP的伪重载      $this -> =   1 ;
 88 PHP的伪重载      break ;
 89 PHP的伪重载   }
 90 PHP的伪重载  }
 91 PHP的伪重载
 92 PHP的伪重载   function  test1 (  $a  )
 93 PHP的伪重载  {
 94 PHP的伪重载    $this -> =   $a ;
 95 PHP的伪重载  }
 96 PHP的伪重载
 97 PHP的伪重载   function  test2 (  $a   ,   $b )
 98 PHP的伪重载  {
 99 PHP的伪重载    $this -> =   $a ;
100 PHP的伪重载    $this -> =   $b ;
101 PHP的伪重载  }
102 PHP的伪重载 }
103 PHP的伪重载
104 PHP的伪重载
105 PHP的伪重载?>

转自: http://www.cnitblog.com/neatstudio/archive/2006/07/21/13949.html

相关文章:

  • 2021-11-20
  • 2021-06-15
  • 2021-06-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2022-12-23
猜你喜欢
  • 2021-12-13
  • 2022-01-17
  • 2022-12-23
  • 2022-12-23
  • 2022-02-21
  • 2022-03-09
  • 2021-10-20
相关资源
相似解决方案