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

首頁 > 開發 > PHP > 正文

php函數重載的替代方法--偽重載詳解

2024-05-04 23:34:54
字體:
來源:轉載
供稿:網友

對于弱類型語言來說,PHP函數重載,并不像一般的OOP那樣。而弱類型本來就不區分,所以無法通過這些來實現。但是,可以通過下面的方法來實現簡單的偽重載吧。

函數重載的替代方法-偽重載,下面看一個具體的實例代碼。

 

 
  1. <? php 
  2. //函數重載的替代方法-偽重載 
  3. // 
  4. //確實,在PHP中沒有函數重載這個概念,讓很多時候我們無法進行一些處理,甚至有時候不得不在函數后面定義好N個參數 
  5. //在看到了func_get_arg,func_get_args,func_num_args,這三個函數的時候,你們是不是想起了什么? 
  6.  
  7. function testOne ( $a ) { 
  8. echo (' 一個參數就這樣 '); 
  9.  
  10. function testTwo ( $a , $b ){ 
  11. echo (' 兩個參數的就這樣 '); 
  12.  
  13. function testThree ($a$b$c ) { 
  14. echo (' 黑黑,這是三個參數的 '); 
  15.  
  16. function test () { 
  17. $argNum = func_num_args (); 
  18. // 這一段其實可以用 $_arg = func_get_args() 來獲得所有的參數,只是要用數組而已,不方便我下面的表達,呵呵 
  19. for ( $i = 0 ; $i < $argNum ; $i ++ ) { 
  20. $_arg_ { $i } = func_get_arg ( $i ); 
  21. switch ( $argNum ) { 
  22. case 1 : 
  23. testOne( $_arg_1 ); 
  24. break ; 
  25. case 2 : 
  26. testTwo( $_arg_1$_arg_2 ); 
  27. break ; 
  28. case 3 : 
  29. testThree( $_arg_1$_arg_2$_arg_3 ); 
  30. break ; 
  31. default : 
  32. echo ( ' 這是沒有參數的情況 ' ); 
  33. break ; 
  34. test(); 
  35. echo ( ' ' ); 
  36. test( 1 ); 
  37. echo ( ' ' ); 
  38. test( 1 , 2 ); 
  39. echo ( ' ' ); 
  40. test( 1 , 2 , 3 ); 
  41.  
  42. // 這些只是在函數中的運用,其實最主要的還是在類中的運用 
  43. //如果這些用到類里面我就不需要擔心構造函數是否有幾個參數了,不是嗎? 
  44.  
  45. class test { 
  46. var $a = 0 ; 
  47. var $b = 0 ; 
  48.  
  49. function test () { 
  50. $argNum = func_num_args (); 
  51. $_arg = func_get_args (); 
  52. switch ($argNum ) { 
  53. case 1 : 
  54. $this -> test1( $_arg [ 0 ] ); 
  55. break ; 
  56. case 2 : 
  57. $this -> test2( $_arg [ 0 ] , $_arg [ 1 ]); 
  58. break ; 
  59. default : 
  60. $this -> a = 0 ; 
  61. $this -> b = 1 ; 
  62. break ; 
  63.  
  64. function test1 ($a) { 
  65. $this -> a = $a ; 
  66.  
  67. function test2 ($a$b) { 
  68. $this -> a = $a ; 
  69. $this -> b = $b ; 
  70. ?> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福泉市| 连山| 余江县| 惠来县| 杭锦旗| 儋州市| 漯河市| 东兰县| 宜兴市| 富源县| 大港区| 新沂市| 葵青区| 神农架林区| 吉首市| 岳阳市| 盖州市| 二手房| 元江| 彝良县| 会宁县| 酒泉市| 抚顺市| 卓尼县| 沧源| 鄱阳县| 天水市| 突泉县| 兴仁县| 巴塘县| 黄骅市| 巴彦淖尔市| 四川省| 舟曲县| 百色市| 桓台县| 揭东县| 佛坪县| 清流县| 邮箱| 白城市|