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

首頁 > 開發(fā) > PHP > 正文

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

2024-05-04 23:27:14
字體:
供稿:網(wǎng)友
這篇文章主要介紹了PHP利用func_get_args和func_num_args函數(shù)實(shí)現(xiàn)函數(shù)重載的方法,實(shí)例展示了PHP實(shí)現(xiàn)重載的具體方法,是非常實(shí)用的技巧,需要的朋友可以參考下
 
 

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

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

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

復(fù)制代碼代碼如下:
function overloadFun($param1, $param2 = '1',$param3 = true)  
{  
 // do something   
}

利用函數(shù)func_get_args()和call_user_func_array(),PHP代碼如下:
復(fù)制代碼代碼如下:
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、使用默認(rèn)值,從而根據(jù)輸入,得到自己想要的結(jié)果,代碼如下:
復(fù)制代碼代碼如下:
function test($name="小李",$age="23"){    
echo $name."  ".$age;    
}    
test();    
echo "<br/>";    
test("a");    
echo "<br/>";    
test("a","b");

3、利用__call($name, $arg) 函數(shù)進(jìn)行處理,代碼如下:
復(fù)制代碼代碼如下:
<?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 />";  
?>


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

 

希望本文所述對大家的PHP程序設(shè)計(jì)有所幫助。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 且末县| 开阳县| 乐昌市| 察隅县| 五莲县| 奉化市| 磐安县| 武定县| 原平市| 荥阳市| 沾化县| 新余市| 龙海市| 丰镇市| 武川县| 景东| 柏乡县| 新源县| 富顺县| 舒兰市| 江油市| 九寨沟县| 汪清县| 卓尼县| 常山县| 明光市| 昭平县| 峨眉山市| 琼海市| 方城县| 南丹县| 临泉县| 高陵县| 临湘市| 雷波县| 庆安县| 昌宁县| 博客| 祁连县| 准格尔旗| 鹿邑县|