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

首頁 > 語言 > PHP > 正文

測試php函數的方法

2024-09-04 11:49:53
字體:
來源:轉載
供稿:網友

本文提供的方法是用于測試php函數的代碼,今天忽然想到的,就寫了一段測試php函數的代碼,代碼如下:

  1. <?php 
  2. /** 
  3.  * 參數數組$ParamList說明 
  4.  * 
  5.  * 數組的第一維索引是需要測試的函數的參數名,第二維的每個元素是該參數需要測試的可能值,元素值可以為數組。 
  6.  */ 
  7. $ParamList = array("Param1" => array(3,4,3,2,1), 
  8.                    "Param2" => array(3,2,5), 
  9.                    "Param3" => array(0,0.5,1,1.5)); 
  10. // 測試函數 
  11. sysTestFunction("Test"$ParamList); 
  12.  
  13. // 待測試的函數 
  14. function Test($Param1$Param2$Param3
  15.     return $Param1 . "|" . $Param2 . "|" . $Param3
  16.  
  17. /** 
  18.  * 自動測試 
  19.  * 
  20.  * @param  string  $FunctionName  函數名稱 
  21.  * @param  array   $ParamList     參數列表 
  22.  * @return array 
  23.  */ 
  24. function sysTestFunction($FunctionName$ParamList
  25.     if(emptyempty($FunctionName)) 
  26.     { 
  27.         echo "函數名不能為空"
  28.         return false; 
  29.     } 
  30.     if(!is_array(current($ParamList))) 
  31.     { 
  32.         echo "參數不是2維數組"
  33.         return false; 
  34.     } 
  35.     $TestParamList = sysCombineArray($ParamList); 
  36.     echo "開始測試函數" . $FunctionName . "<br />"
  37.     foreach($TestParamList as $Key => $TestParamInfo
  38.     { 
  39.         echo "開始測試第" . $Key . "組參數:<br />"
  40.         foreach($TestParamInfo as $ParamKey => $Param
  41.         { 
  42.             ${"Param" . $ParamKey} = $Param
  43.             $TempParamList[] = "$Param" . $ParamKey
  44.             if(is_array($Param)) 
  45.             { 
  46.                 echo "參數" . $ParamKey . ",類型為數組:"
  47.                 echo "<pre>"
  48.                 print_r($Param); 
  49.             } 
  50.             elseif(is_bool($Param)) 
  51.             { 
  52.                 echo "參數" . $ParamKey . ",類型為boll:"
  53.                 if($Param
  54.                 { 
  55.                     echo "true"
  56.                 } 
  57.                 else 
  58.                 { 
  59.                     echo "false"
  60.                 } 
  61.             } 
  62.             else 
  63.             { 
  64.                 echo "參數" . $ParamKey . ",類型為字符串或數字:"
  65.                 echo $Param
  66.             } 
  67.             echo "<br />"
  68.         } 
  69.         $Params = join(", "$TempParamList); 
  70.         unset($TempParamList); 
  71.         eval("$TestReturnResult = " . $FunctionName . "(" . $Params . ");"); 
  72.         if(is_array($TestReturnResult)) 
  73.         { 
  74.             echo "函數返回數組:<pre>"
  75.             print_r($TestReturnResult); 
  76.         } 
  77.         elseif(is_bool($TestReturnResult)) 
  78.         { 
  79.             if($TestReturnResult
  80.             { 
  81.                 echo "函數返回true"
  82.             } 
  83.             else 
  84.             { 
  85.                 echo "函數返回false"
  86.             } 
  87.         } 
  88.         else 
  89.         { 
  90.             echo "函數返回數字或字符串:" . $TestReturnResult
  91.         } 
  92.         echo "<br /><br />"
  93.     } 
  94. /** 
  95.  * 計算組合的函數 
  96.  * 
  97.  * @param  array $CombinList 待排列組合的2維數組 
  98.  * @return array             組合后的數組 
  99.  */ 
  100. function sysCombineArray($CombinList
  101.     if(!is_array(current($CombinList))) 
  102.     { 
  103.         echo "參數不是2維數組"
  104.         return false; 
  105.     } 
  106.     /* 計算C(a,1) * C(b, 1) * ... * C(n, 1)的值 */ 
  107.     $CombineCount = 1; 
  108.     foreach($CombinList as $Key => $Value
  109.     { 
  110.         $CombineCount *= count($Value); 
  111.     } 
  112.     $RepeatTime = $CombineCount
  113.     foreach($CombinList as $ClassNo => $ParamList
  114.     { 
  115.         // $ParamList中的元素在拆分成組合后縱向出現的最大重復次數 
  116.         $RepeatTime = $RepeatTime / count($ParamList); 
  117.         $StartPosition = 1; 
  118.         foreach($ParamList as $Param
  119.         { 
  120.             $TempStartPosition = $StartPosition
  121.             $SpaceCount = $CombineCount / count($ParamList) / $RepeatTime
  122.             for($J = 1; $J <= $SpaceCount$J ++) 
  123.             { 
  124.                 for($I = 0; $I < $RepeatTime$I ++) 
  125.                 { 
  126.                    $Result[$TempStartPosition + $I][$ClassNo] = $Param
  127.                 } //Vevb.com 
  128.                 $TempStartPosition += $RepeatTime * count($ParamList); 
  129.             } 
  130.             $StartPosition += $RepeatTime
  131.         } 
  132.     } 
  133.     return $Result
  134. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 胶州市| 和平县| 宁都县| 顺昌县| 永济市| 彰化市| 大邑县| 从化市| 永安市| 蒙城县| 思南县| 平江县| 土默特右旗| 四子王旗| 古浪县| 泸州市| 小金县| 青川县| 仲巴县| 和平县| 临江市| 东山县| 五河县| 休宁县| 上饶县| 松桃| 长治县| 灌云县| 青海省| 民权县| 沧源| 南充市| 上犹县| 玉溪市| 互助| 台北市| 会泽县| 凌云县| 嘉义县| 淮阳县| 伊通|