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

首頁 > 語言 > PHP > 正文

PHP利用func_get_args和func_num_args函數實現函數重載實例

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

這篇文章主要介紹了PHP利用func_get_args和func_num_args函數實現函數重載的方法,實例展示了PHP實現重載的具體方法,是非常實用的技巧,需要的朋友可以參考下

本文實例講述了PHP利用func_get_args和func_num_args函數實現函數重載的方法。分享給大家供大家參考。具體方法分析如下:

學習php的朋友都知道php本身是沒有函數重載這一說的,更沒說像java,c那樣使用方法,但如果我們深入了解一下會發現可以在php中使用func_get_args()和func_num_args()函數實現函數重載,下面來舉兩個函數重載例子.這兩個函數實現函數的重載.

1、默認參數,如果一個函數里面,這不是必須參數,而添加相應的默認值,就可以完成相應的功能,代碼如下:

  1. function overloadFun($param1$param2 = '1',$param3 = true)  
  2. {  
  3.  // do something   

利用函數func_get_args()和call_user_func_array(),PHP代碼如下:

  1. function rewrite() {     
  2. $args = func_get_args();     
  3. if(func_num_args() == 1) {     
  4. func1($args[0]);     
  5. else if(func_num_args() == 2) {     
  6. func2($args[0], $args[1]);     
  7. }     
  8. }     
  9.     
  10. function func1($arg) {     
  11. echo $arg;     
  12. }    //m.survivalescaperooms.com 
  13.     
  14. function func2($arg1$arg2) {     
  15. echo $arg1' '$arg2;     
  16. }     
  17.     
  18. rewrite('PHP'); //調用func1     
  19. rewrite('PHP','China'); //調用func2 

2、使用默認值,從而根據輸入,得到自己想要的結果,代碼如下:

  1. function test($name="小李",$age="23"){    
  2. echo $name."  ".$age;    
  3. }    
  4. test();    
  5. echo "<br/>";    
  6. test("a");    
  7. echo "<br/>";    
  8. test("a","b"); 

3、利用__call($name, $arg) 函數進行處理,代碼如下:

  1. <?php  
  2. class OverLoad{  
  3. function __call($name$args)  
  4. {  
  5.   if($name=='overloadFun')  
  6.   {  
  7.    switch(count($args))  
  8.    {  
  9.     case 0: $this->overloadFun0();break;  
  10.     case 1: $this->overloadFun1($args[0]); break;  
  11.     case 2: $this->overloadFun2($args[0], $args[1]); break;  
  12.     default//do something  
  13.       break;  
  14.    }  
  15.   }  
  16. }  
  17.      
  18. function overloadFun0()  
  19. {  
  20.   echo 0;  
  21. }  
  22. function overloadFun1($var1)  
  23. {  
  24.   echo $var1;  
  25. }  
  26.  
  27. function overloadFun2($var1,$var2)  
  28. {  
  29.     
  30.   echo $var1+$var2;  
  31.    }  
  32. }    
  33. $test=new OverLoad();  
  34. $test->overloadFun()."<br />".   
  35. $test->overloadFun(1)."<br />".   
  36. $test->overloadFun(1,2)."<br />";  
  37. ?> 

有了這樣的方法之后我們就可以利用它們來實現簡單函數重載了,但有一點要注明的是php 作為一種弱類型語言,本身不能像強類型如java,c++那樣,直接的實現重載,至少現在不可以以后版本會不會有我們不知道.

希望本文所述對大家的PHP程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德格县| 米泉市| 英吉沙县| 长垣县| 石渠县| 金溪县| 类乌齐县| 奉贤区| 个旧市| 承德市| 肥西县| 册亨县| 尖扎县| 中卫市| 多伦县| 玉田县| 昌黎县| 梅州市| 朝阳县| 东乡族自治县| 嘉峪关市| 资阳市| 朝阳市| 渭南市| 靖州| 庆安县| 岐山县| 永嘉县| 江津市| 泊头市| 建平县| 玉山县| 余庆县| 克拉玛依市| 达州市| 宝兴县| 盐城市| 香港 | 木里| 台中县| 濉溪县|