最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php函數(shù)重載的替代方法--偽重載詳解

 更新時間:2015年05月08日 11:25:58   投稿:hebedich  
對于弱類型語言來說,PHP函數(shù)重載,并不像一般的OOP那樣。而弱類型本來就不區(qū)分,所以無法通過這些來實現(xiàn)。但是,可以通過下面的方法來實現(xiàn)簡單的偽重載吧。

函數(shù)重載的替代方法-偽重載,下面看一個具體的實例代碼。

<? php
//函數(shù)重載的替代方法-偽重載
//
//確實,在PHP中沒有函數(shù)重載這個概念,讓很多時候我們無法進(jìn)行一些處理,甚至有時候不得不在函數(shù)后面定義好N個參數(shù)
//在看到了func_get_arg,func_get_args,func_num_args,這三個函數(shù)的時候,你們是不是想起了什么?

function testOne ( $a ) {
 echo (' 一個參數(shù)就這樣 ');
}

function testTwo ( $a ,  $b ){
 echo (' 兩個參數(shù)的就這樣 ');
}

function testThree ($a,  $b,  $c ) {
 echo (' 黑黑,這是三個參數(shù)的 ');
}

function test () {
 $argNum  =  func_num_args ();
  // 這一段其實可以用 $_arg = func_get_args() 來獲得所有的參數(shù),只是要用數(shù)組而已,不方便我下面的表達(dá),呵呵
 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 ( ' 這是沒有參數(shù)的情況 ' );
   break ;
 }
}
test();
echo ( ' ' );
test( 1 );
echo ( ' ' );
test( 1 , 2 );
echo ( ' ' );
test( 1 , 2 , 3 );

// 這些只是在函數(shù)中的運用,其實最主要的還是在類中的運用
//如果這些用到類里面我就不需要擔(dān)心構(gòu)造函數(shù)是否有幾個參數(shù)了,不是嗎?

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 ;
 }
}
?>

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

最新評論

内江市| 双鸭山市| 武陟县| 霍邱县| 天峻县| 温州市| 双流县| 富顺县| 安仁县| 石屏县| 昭苏县| 大竹县| 武穴市| 东莞市| 伊吾县| 东光县| 普兰县| 高青县| 积石山| 江津市| 新建县| 桃园县| 仙桃市| 光泽县| 乡宁县| 益阳市| 科技| 普陀区| 彰武县| 建水县| 松原市| 昭通市| 连南| 宁阳县| 巴林左旗| 华亭县| 汉阴县| 正镶白旗| 古蔺县| 淳化县| 乐昌市|