亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現的函數重載功能示例

2024-05-05 00:04:50
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現的函數重載功能。分享給大家供大家參考,具體如下:

由于PHP是弱類型語言,因此函數的輸入參數類型無法確定(可以使用類型暗示,但是類型暗示無法用在諸如整型,字符串之類的標量類型上),并且對于一個函數,比如只定義了3個輸入參數,PHP卻運行調用的時候輸入4個或者更多的參數。因此基于這2點,注定了PHP中無法重載函數,(類似Javascript語言),也無法有構造函數的重載。

由于實現函數的重載對提高開發效率很有幫助,如果能象C#或者C++那樣,那就非常好了。事實上,PHP的提供了一個魔術方法,mixed __call ( string name, array arguments )。這個方法在php手冊中也有提及,根據官方文檔,稱此方法可以實現函數重載。當調用對象中一個不存在的方法的時候,如果定義了__call()方法,則會調用該方法。比如下面的代碼:

<?phpclass A{  function __call ( $name, $arguments )  {    echo "__call調用<br/>";    echo '$name為'.$name."<br/>";    print_r ($arguments);  }}(new A)->test("test","argument");?>

運行結果為:

__call調用
$name為test
Array ( [0] => test [1] => argument )

因此只需要利用該魔術方法既可以實現函數重載。

代碼如下:

<?phpclass A{  function __call ($name, $args )  {    if($name=='f')    {      $i=count($args);      if (method_exists($this,$f='f'.$i)) {        call_user_func_array(array($this,$f),$args);      }    }  }  function f1($a1)  {    echo "1個參數".$a1."<br/>";  }  function f2($a1,$a2)  {    echo "2個參數".$a1.",".$a2."<br/>";  }  function f3($a1,$a2,$a3)  {     echo "3個參數".$a1.",".$a2.",".$a3."<br/>";  }}(new A)->f('a');(new A)->f('a','b');(new A)->f('a','b','c');?>

輸出如下:

1個參數a
2個參數a,b
3個參數a,b,c

同樣的在PHP中,實現構造函數的重載,也只能變通的實現。實現的關鍵要素是獲取輸入參數,并且根據輸入參數判斷調用哪個方法。下面是一個示例代碼:

<?phpclass A{  function __construct()  {    echo "執行構造函數<br/>";    $a = func_get_args(); //獲取構造函數中的參數    $i = count($a);    if (method_exists($this,$f='__construct'.$i)) {      call_user_func_array(array($this,$f),$a);    }  }  function __construct1($a1)  {    echo "1個參數".$a1."<br/>";  }  function __construct2($a1,$a2)  {    echo "2個參數".$a1.",".$a2."<br/>";  }  function __construct3($a1,$a2,$a3)  {     echo "3個參數".$a1.",".$a2.",".$a3."<br/>";  }}$o = new A('a');$o = new A('a','b');$o = new A('a','b','c');?>

執行構造函數
1個參數a
執行構造函數
2個參數a,b
執行構造函數
3個參數a,b,c

順便提一下,和c#等面向對象語言一樣,php中,把構造函數設成私有或者protected,就不能實例化該對象了。

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


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人久久久| 国产一区二区久久精品| 国产精品女人网站| 久久久久久久久网站| 国产精品偷伦视频免费观看国产| 国产精品久久久久久婷婷天堂| 国产精品久久在线观看| 欧美电影第一页| 成人www视频在线观看| 欧洲成人免费aa| 亚洲激情电影中文字幕| 久久亚洲综合国产精品99麻豆精品福利| 中文字幕亚洲欧美日韩高清| 国产婷婷色综合av蜜臀av| 亚洲精品视频在线播放| 国产精品欧美久久久| 欧美一区二区视频97| www.精品av.com| 亚洲成人a**站| 国产亚洲人成网站在线观看| 欧美激情在线观看| 精品爽片免费看久久| 国产精品最新在线观看| 亚洲欧美日韩久久久久久| 亚洲国产精品一区二区久| 亚洲**2019国产| 亚洲理论在线a中文字幕| 超碰日本道色综合久久综合| 国产ts人妖一区二区三区| 最好看的2019年中文视频| 日韩电影中文字幕| 欧美日韩不卡合集视频| 欧美高跟鞋交xxxxxhd| 久久精品国产欧美激情| 91av在线精品| 最近更新的2019中文字幕| 国产精品第七影院| 日韩在线视频二区| 欧美高清在线视频观看不卡| 91免费人成网站在线观看18| 国内成人精品视频| 久久久精品999| 久久久噜久噜久久综合| 欧美成人精品在线播放| 中文字幕日韩高清| 国产成人avxxxxx在线看| 久久99热精品这里久久精品| 亚洲国产成人91精品| 国产成人亚洲综合青青| 国产精品视频成人| 2020欧美日韩在线视频| 一道本无吗dⅴd在线播放一区| 中文字幕v亚洲ⅴv天堂| 国产精品免费福利| 欧美第一黄网免费网站| 欧美另类69精品久久久久9999| 欧美在线视频免费播放| 性欧美暴力猛交69hd| 亚洲精品美女在线观看播放| 欧美亚洲另类激情另类| 国产精品91久久| 国产精品一区二区三区毛片淫片| 亚洲高清免费观看高清完整版| 久久久久久亚洲精品中文字幕| 色偷偷av一区二区三区乱| 成人在线中文字幕| 色99之美女主播在线视频| 欧美多人爱爱视频网站| 中文国产成人精品| 欧美大秀在线观看| 国产精品99久久久久久久久| 国产97在线观看| 亚洲91精品在线| 亚洲欧洲激情在线| 川上优av一区二区线观看| xx视频.9999.com| 欧美俄罗斯乱妇| 美日韩丰满少妇在线观看| 久久五月天综合| 国产精品18久久久久久麻辣| 日韩成人免费视频| 国产精品免费久久久| 国产精品www色诱视频| 欧美精品亚州精品| 人体精品一二三区| 成人网在线免费观看| 欧美激情欧美狂野欧美精品| 91精品国产色综合久久不卡98| 亚洲免费中文字幕| 亚洲性69xxxbbb| 亚洲人成网站在线播| 国产91在线视频| 亚洲国产精品专区久久| www.亚洲一二| 日韩免费精品视频| 亚洲性夜色噜噜噜7777| 日韩国产高清视频在线| 97久久久久久| 国产精品尤物福利片在线观看| 国产一区二区三区在线观看视频| 伊人亚洲福利一区二区三区| 亚洲综合一区二区不卡| 欧美性少妇18aaaa视频| 色樱桃影院亚洲精品影院| 亚洲一区亚洲二区亚洲三区| 欧美国产日韩一区二区三区| 中文字幕亚洲无线码a| 成人a在线视频| 亚洲精品理论电影| 亚洲综合国产精品| 欧美大片网站在线观看| 亚洲成人久久电影| 亚洲国产欧美一区二区丝袜黑人| 国产69精品久久久久9999| 国产精品黄视频| 亚洲成色999久久网站| 日韩电影大全免费观看2023年上| 91免费的视频在线播放| 久久久久五月天| 欧美性一区二区三区| 精品中文字幕在线| 激情亚洲一区二区三区四区| 动漫精品一区二区| 国内免费精品永久在线视频| 欧美一区二区三区精品电影| 欧美性资源免费| 欧美大成色www永久网站婷| 懂色av影视一区二区三区| 57pao成人永久免费视频| 日韩在线免费av| 国产亚洲欧美一区| 久久精品久久久久| 伊人青青综合网站| 日韩精品视频免费在线观看| 日韩av理论片| 亚洲人成自拍网站| 久久免费观看视频| 日韩电影在线观看免费| 最近2019中文字幕大全第二页| 亚洲国产小视频在线观看| 亚洲欧美在线看| 一区二区三区美女xx视频| 青青草成人在线| 亚洲国产小视频在线观看| 欧美壮男野外gaytube| 欧美尺度大的性做爰视频| 亚洲最大在线视频| 亚洲欧美激情视频| 亚洲男人天堂2019| 国产精品一二区| 国产精品极品尤物在线观看| 亚洲综合中文字幕在线观看| 精品久久久一区| 国产精品成熟老女人| 91精品国产高清自在线看超| 亚洲人成网站色ww在线| 操日韩av在线电影| 亚洲国产高清自拍| 久久久久久久一| 日韩免费不卡av| 亚洲综合色激情五月| 亚洲视频国产视频| 九九九久久国产免费| 亚洲精品福利在线观看|