zoukankan      html  css  js  c++  java
  • PHP的伪重载 简单

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

    转自: http://www.cnitblog.com/neatstudio/archive/2006/07/21/13949.html
  • 相关阅读:
    接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架
    Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
    Python 基于Python实现批量创建目录
    Loadrunner 脚本录制-通过代理录制脚本
    Clumsy 利用无线网卡结合Clumsy软件模拟弱网络测试
    Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试
    Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
    Postman Postman测试接口之POST提交本地文件数据
    Loadrunner 脚本开发-利用web_custom_request函数进行接口测试
    loadrunner 脚本开发-web_custom_request函数详细介绍
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/1959577.html
Copyright © 2011-2022 走看看