欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP利用func_get_args和func_num_args函數(shù)實現(xiàn)函數(shù)重載實例

 更新時間:2014年11月12日 15:09:31   投稿:shichen2014  
這篇文章主要介紹了PHP利用func_get_args和func_num_args函數(shù)實現(xiàn)函數(shù)重載的方法,實例展示了PHP實現(xiàn)重載的具體方法,是非常實用的技巧,需要的朋友可以參考下

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

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

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

復制代碼 代碼如下:
function overloadFun($param1, $param2 = '1',$param3 = true) 

 // do something  
}

利用函數(shù)func_get_args()和call_user_func_array(),PHP代碼如下:
復制代碼 代碼如下:
function rewrite() {    
$args = func_get_args();    
if(func_num_args() == 1) {    
func1($args[0]);    
} else if(func_num_args() == 2) {    
func2($args[0], $args[1]);    
}    
}    
   
function func1($arg) {    
echo $arg;    
}    
   
function func2($arg1, $arg2) {    
echo $arg1, ' ', $arg2;    
}    
   
rewrite('PHP'); //調(diào)用func1    
rewrite('PHP','China'); //調(diào)用func2

2、使用默認值,從而根據(jù)輸入,得到自己想要的結(jié)果,代碼如下:
復制代碼 代碼如下:
function test($name="小李",$age="23"){   
echo $name."  ".$age;   
}   
test();   
echo "<br/>";   
test("a");   
echo "<br/>";   
test("a","b");

3、利用__call($name, $arg) 函數(shù)進行處理,代碼如下:
復制代碼 代碼如下:
<?php 
class OverLoad{ 
function __call($name, $args) 

  if($name=='overloadFun') 
  { 
   switch(count($args)) 
   { 
    case 0: $this->overloadFun0();break; 
    case 1: $this->overloadFun1($args[0]); break; 
    case 2: $this->overloadFun2($args[0], $args[1]); break; 
    default: //do something 
      break; 
   } 
  } 

    
function overloadFun0() 

  echo 0; 

function overloadFun1($var1) 

  echo $var1; 

function overloadFun2($var1,$var2) 

   
  echo $var1+$var2; 
   } 
}   
$test=new OverLoad(); 
$test->overloadFun()."<br />".  
$test->overloadFun(1)."<br />".  
$test->overloadFun(1,2)."<br />"; 
?>


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

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

相關文章

  • php面象對象數(shù)據(jù)庫操作類實例

    php面象對象數(shù)據(jù)庫操作類實例

    這篇文章主要介紹了php面象對象數(shù)據(jù)庫操作類,以實例形式講述了通過面向?qū)ο蠓庋b數(shù)據(jù)庫操作的技巧,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • PHP實現(xiàn)簡單搜歌的方法

    PHP實現(xiàn)簡單搜歌的方法

    這篇文章主要介紹了PHP實現(xiàn)簡單搜歌的方法,實例分析了php通過新浪樂庫搜索接口查詢歌曲的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • php自定義函數(shù)截取漢字長度

    php自定義函數(shù)截取漢字長度

    php中截取漢字長度的方法有很多,本例通過自定義函數(shù)來完成這個需求,感興趣的朋友可以參考下
    2014-05-05
  • php動態(tài)函數(shù)調(diào)用方法

    php動態(tài)函數(shù)調(diào)用方法

    本文主要給大家介紹了php中動態(tài)調(diào)用函數(shù)的方法,實例分析了php動態(tài)函數(shù)的實現(xiàn)原理與具體實現(xiàn)步驟,需要的朋友可以參考下
    2015-05-05
  • 微信公眾號點擊菜單即可打開并登錄微站的實現(xiàn)方法

    微信公眾號點擊菜單即可打開并登錄微站的實現(xiàn)方法

    這篇文章主要介紹了微信公眾號點擊菜單即可打開并登錄微站的實現(xiàn)方法,以實例形式對回調(diào)、菜單及參數(shù)的處理等具體實現(xiàn)步驟與功能代碼都做了較為詳細的描述,對于微信公眾號的開發(fā)來說具有很好的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • 在php中生成xml數(shù)據(jù)的三種方法

    在php中生成xml數(shù)據(jù)的三種方法

    這篇文章主要給大家介紹了在php中生成xml數(shù)據(jù)的三種方法,文章通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-11-11
  • php使用socket post數(shù)據(jù)到其它web服務器的方法

    php使用socket post數(shù)據(jù)到其它web服務器的方法

    這篇文章主要介紹了php使用socket post數(shù)據(jù)到其它web服務器的方法,涉及php使用socket傳輸數(shù)據(jù)的相關技巧,需要的朋友可以參考下
    2015-06-06
  • PHP微框架Dispatch簡介

    PHP微框架Dispatch簡介

    Dispatch是一個PHP小框架,可以合并Dispatch和其他框架,開發(fā)出相當強大并且輕量級的程序,需要的朋友可以參考下
    2014-06-06
  • php 函數(shù)中靜態(tài)變量使用的問題實例分析

    php 函數(shù)中靜態(tài)變量使用的問題實例分析

    這篇文章主要介紹了php 函數(shù)中靜態(tài)變量使用的問題,結(jié)合實例形式分析了php 函數(shù)中靜態(tài)變量使用過程中遇到的問題,以及相關操作注意事項,需要的朋友可以參考下
    2020-03-03
  • PHP數(shù)組遞歸排序?qū)崿F(xiàn)方法示例

    PHP數(shù)組遞歸排序?qū)崿F(xiàn)方法示例

    這篇文章主要介紹了PHP數(shù)組遞歸排序?qū)崿F(xiàn)方法,結(jié)合實例形式分析了php基于遞歸算法針對特定key對數(shù)組進行排序的相關操作技巧,需要的朋友可以參考下
    2018-03-03

最新評論