国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php函數重載的替代方法--偽重載詳解

2024-09-04 11:42:38
字體:
來源:轉載
供稿:網友

對于弱類型語言來說,PHP函數重載,并不像一般的OOP那樣。而弱類型本來就不區分,所以無法通過這些來實現,但是,可以通過下面的方法來實現簡單的

  1. <? php 
  2. //函數重載的替代方法-偽重載 
  3. // 
  4. //確實,在PHP中沒有函數重載這個概念,讓很多時候我們無法進行一些處理,甚至有時候不得不在函數后面定義好N個參數 
  5. //在看到了func_get_arg,func_get_args,func_num_args,這三個函數的時候,你們是不是想起了什么? 
  6.  
  7. function testOne ( $a ) { 
  8.  echo (' 一個參數就這樣 '); 
  9.  
  10. function testTwo ( $a ,  $b ){ 
  11.  echo (' 兩個參數的就這樣 '); 
  12.  
  13. function testThree ($a,  $b,  $c ) { 
  14.  echo (' 黑黑,這是三個參數的 '); 
  15.  
  16. function test () { 
  17.  $argNum  =  func_num_args (); 
  18.   // 這一段其實可以用 $_arg = func_get_args() 來獲得所有的參數,只是要用數組而已,不方便我下面的表達,呵呵 
  19.  for ( $i  =  0 ; $i  <  $argNum ; $i ++ ) { 
  20.   $_arg_ { $i } =  func_get_arg ( $i ); 
  21.  } 
  22.  switch ( $argNum ) { 
  23.   case  1 : 
  24.    testOne( $_arg_1 ); 
  25.    break ; 
  26.   case  2 : 
  27.    testTwo( $_arg_1,  $_arg_2 ); 
  28.    break ; 
  29.   case  3 : 
  30.    testThree( $_arg_1,  $_arg_2,  $_arg_3 ); 
  31.    break ; 
  32.   default : 
  33.    echo ( ' 這是沒有參數的情況 ' ); 
  34.    break ; 
  35.  } 
  36. test(); 
  37. echo ( ' ' ); 
  38. test( 1 ); 
  39. echo ( ' ' ); 
  40. test( 1 , 2 ); 
  41. echo ( ' ' ); 
  42. test( 1 , 2 , 3 ); 
  43.  
  44. // 這些只是在函數中的運用,其實最主要的還是在類中的運用 
  45. //如果這些用到類里面我就不需要擔心構造函數是否有幾個參數了,不是嗎? 
  46.  
  47. class test { 
  48.  var  $a  =  0 ; 
  49.  var  $b  =  0 ; 
  50.  
  51.  function test () { 
  52.   $argNum  =  func_num_args (); 
  53.   $_arg  =  func_get_args (); 
  54.   switch ($argNum ) { 
  55.    case  1 : 
  56.    $this -> test1( $_arg [ 0 ] ); 
  57.    break ; 
  58.   case  2 : 
  59.    $this -> test2( $_arg [ 0 ] ,  $_arg [ 1 ]); 
  60.    break ; 
  61.   default : 
  62.    $this -> a = 0 ; 
  63.    $this -> b = 1 ; 
  64.    break ; 
  65.   } 
  66.  } 
  67.  
  68.  function test1 ($a) { 
  69.   $this -> a =  $a ; 
  70.  } 
  71.  
  72.  function test2 ($a,  $b) { 
  73.   $this -> a =  $a ; 
  74.   $this -> b =  $b ; 
  75.  } 
  76. ?> 

偽重載吧。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南岸区| 云林县| 榆树市| 黄山市| 台南县| 乐陵市| 松江区| 招远市| 遵化市| 鹤岗市| 万安县| 米泉市| 喀什市| 定边县| 双流县| 昌乐县| 福安市| 外汇| 米林县| 梨树县| 云龙县| 沅陵县| 丹江口市| 宁晋县| 金溪县| 开封县| 遵义县| 伊宁市| 礼泉县| 嘉峪关市| 玛纳斯县| 日喀则市| 化州市| 博白县| 龙游县| 清流县| 龙山县| 崇仁县| 武宣县| 广河县| 九台市|