婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP實現(xiàn)重載的常用方法實例詳解

PHP實現(xiàn)重載的常用方法實例詳解

熱門標(biāo)簽:清遠陽山400電話號碼如何申請 百度地圖標(biāo)注飯店位置怎么 安徽移動外呼系統(tǒng) 深圳400電話辦理那家好 怎么在高德地圖標(biāo)注行走軌跡 施工地圖標(biāo)注怎么做 個性化地圖標(biāo)注在線 百度地圖標(biāo)注名編輯 襄陽房產(chǎn)電銷機器人招商

本文實例講述了PHP實現(xiàn)重載的常用方法。分享給大家供大家參考,具體如下:

php是弱類型語言,并沒有像JAVA這種強類型語言一樣有重載。

重載一般來說就是擁有相同的函數(shù)名或方法名,但是參數(shù)列表卻不同(包括參數(shù)個數(shù)和參數(shù)類型)

從這個定義來說,php是沒有重載的,因為php不允許存在相同的函數(shù)名。

但是沒有并不意味著不能實現(xiàn)。

php有四種機制可以實現(xiàn)重載:(下面用java進行對比)

1. 弱類型,無需定義變量類型

先舉一個JAVA重載的例子:

class demo
{
  public static void main (String[] args)
  {
    sum(1,1);//2
    sum(1,1.5);//2.5
    sum(1.5,1.5);//3.0
  }
  public static void sum(int var1,int var2){
      System.out.println(var1+var2);
  }
  public static void sum(int var1,double var2){
      System.out.println(var1+var2);
  }
  public static void sum(double var1,double var2){
      System.out.println(var1+var2);
  }
}

上面的代碼如果用php語言實現(xiàn):

?php
function sum($var1,$var2){
  echo $var1+$var2;
}
sum(1,1);//2
sum(1,1.5);//2.5
sum(1.5,1.5);//3
?>

2. 可選參數(shù),允許變量設(shè)置默認值

JAVA重載例子:

class demo
{
  public static void main (String[] args)
  {
    sum(1,2);//3
    sum(1,2,3);//6
  }
  public static void sum(int var1,int var2){
      System.out.println(var1+var2);
  }
  public static void sum(int var1,int var2,int var3){
      System.out.println(var1+var2+var3);
  }
}

用php可選參數(shù)特性實現(xiàn):

?php
function sum($var1,$var2,$var3=NULL){//$var3設(shè)置默認值
  echo $var1+$var2+$var3;
}
sum(1,2);//2
sum(1,2,3);//2.5
?>

可以看到同樣的功能,但是php這種弱類型語言實現(xiàn)起來更簡單

3. 可變參數(shù)

主要用到以下兩個函數(shù):

func_num_args() 返回函數(shù)的參數(shù)個數(shù)
func_get_args() 返回一個包含函數(shù)參數(shù)列表的數(shù)組

具體實現(xiàn)方式:

?php
class demo{
  public function method(){
    $numargs = func_num_args();//獲得參數(shù)數(shù)量
    $args = func_get_args();//獲得參數(shù)數(shù)組
    switch ($numargs) {//通過變量個數(shù)來確定調(diào)用哪個方法
      case 2:
        $this->method2($args[0],$args[1]);
        break;
      case 3:
        $this->method3($args[0],$args[1],$args[2]);
        break;
    }
  }
  private function method2($var1,$var2){
    #code...
  }
  private function method3($var1,$var2,$var3){
    #code...
  }
}
//調(diào)用
$obj = new demo();
$obj->method('var1','var2');
$obj->method('var1','var2','var3');
//看起來似乎通過一個接口調(diào)用
//但其實內(nèi)部已經(jīng)調(diào)用了各自定義的方法
?>

4. 使用魔術(shù)方法 __call()

public mixed __call ( string $name , array $arguments )

在對象中調(diào)用一個不可訪問的方法時,__call()會被自動調(diào)用

$name參數(shù)是要調(diào)用的方法名稱 $argument參數(shù)是被調(diào)用方法的參數(shù)數(shù)組

具體實現(xiàn)方式類似上面的第三要點:

?php
class demo{
  public function __call($name,$arguments){
    if($name == "method"){
      switch (count($arguments)) {//獲得參數(shù)數(shù)組個數(shù)
        case 2:
          $this->method2($args[0],$args[1]);
          break;
        case 3:
          $this->method3($args[0],$args[1],$args[2]);
          break;
      }
    }
  }
  private function method2($var1,$var2){
    #code...
  }
  private function method3($var1,$var2,$var3){
    #code...
  }
}
//調(diào)用
$obj = new demo();
$obj->method("var1","var2");
$obj->method("var1","var2","var3");
?>

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

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

您可能感興趣的文章:
  • php面向?qū)ο蟮姆椒ㄖ剌d兩種版本比較
  • php繼承中方法重載(覆蓋)的應(yīng)用場合
  • PHP使用方法重載實現(xiàn)動態(tài)創(chuàng)建屬性的get和set方法
  • PHP利用func_get_args和func_num_args函數(shù)實現(xiàn)函數(shù)重載實例
  • php中拷貝構(gòu)造函數(shù)、賦值運算符重載
  • PHP小技巧之函數(shù)重載
  • PHP面相對象中的重載與重寫
  • PHP面向?qū)ο蟪绦蛟O(shè)計重載(overloading)操作詳解
  • PHP面向?qū)ο蟪绦蛟O(shè)計模擬一般面向?qū)ο笳Z言中的方法重載(overload)示例
  • php魔術(shù)函數(shù)__call()用法實例分析
  • PHP __call()方法實現(xiàn)委托示例
  • php 使用 __call實現(xiàn)重載功能示例

標(biāo)簽:黑河 中衛(wèi) 臨夏 欽州 南昌 延邊 阜陽 駐馬店

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實現(xiàn)重載的常用方法實例詳解》,本文關(guān)鍵詞  PHP,實現(xiàn),重載,的,常用,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP實現(xiàn)重載的常用方法實例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP實現(xiàn)重載的常用方法實例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 瑞昌市| 遵义县| 宿松县| 云浮市| 大英县| 汉中市| 安溪县| 崇礼县| 信丰县| 大竹县| 漳平市| 夹江县| 望谟县| 沙河市| 徐汇区| 邻水| 沈阳市| 青岛市| 德江县| 濉溪县| 黔西县| 郑州市| 沧州市| 渑池县| 荔浦县| 望谟县| 名山县| 贵港市| 莱西市| 柳河县| 洪雅县| 分宜县| 子长县| 开封县| 遵义县| 鄂托克前旗| 湖口县| 安顺市| 始兴县| 湟源县| 绥化市|