• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用于测试php函数的代码_PHP

php 搞代码 3年前 (2022-01-25) 26次浏览 已收录 0个评论

今天忽然想到的,就写了一段测试php函数的代码。

<?php

/**
* 参数数组$ParamList说明
*
* 数组的第一维索引是需要测试的函数的参数名,第二维的每个元素是该参数需要测试的可能值,元素值可以为数组。
*/

$ParamList = array(“Param1” => array(3,4,3,2,1),
“Param2” => array(3,2,5),
“Param3” => array(0,0.5,1,1.5));

// 测试函数
sysTestFunction(“Test”, $ParamList);


// 待测试的函数
function Test($Param1, $Param2, $Param3)
{
return $Param1 . “|” . $Param2 . “|” . $Param3;
}


/**
* 自动测试
*
* @author 李玉鹏
* @param string $FunctionName 函数名称
* @param array $ParamList 参数列表
* @return array
*/
function sysTestFunction($FunctionName, $ParamList)
{
if(empty($FunctionName))
{
echo “函数名不能为空”;
return false;
}

if(!is_array(current($ParamList)))
{
echo “参数不是2维数组”;
return false;
}

$TestParamList = sysCombineArray($ParamList);

echo “开始测试函数” . $FunctionName . “
“;
foreach($TestParamList as $Key => $TestParamInfo)
{
echo “开始测试第” . $Key . “组参数:
“;

foreach($TestParamInfo as $ParamKey => $Param)
{
${“Param” . $ParamKey} = $Param;
$TempParamList[] = “$Param” . $ParamKey;
if(is_array($Param))
{
echo “参数” . $ParamKey . “,类型为数组:”;
echo “

";<BR>                print_r($Param);<BR>            }<BR>            elseif(is_bool($Param))<BR>            {<BR>                echo "参数" . $ParamKey . ",类型为boll:";<BR>                if($Param)<BR>                {<BR>                    echo "true";<BR>                }<BR>                else<BR>                {<BR>                    echo "false";<BR>                }<BR>            }<BR>            else<BR>            {<BR>                echo "参数" . $ParamKey . ",类型为字符串或数字:";<BR>                echo $Param;<BR>            }<BR>            echo "<br />";<BR>        }</P><P>        $Params = join(", ", $TempParamList);<BR>        unset($TempParamList);</P><P>        eval("$TestReturnResult = " . $FunctionName . "(" . $Params . ");");<BR>        if(is_array($TestReturnResult))<BR>        {<BR>            echo "函数返回数组:<pre class="prettyprint linenums">";<BR>            print_r($TestReturnResult);<BR>        }<BR>        elseif(is_bool($TestReturnResult))<BR>        {<BR>            if($TestReturnResult)<BR>            {<BR>                echo "函数返回true";<BR>            }<BR>            else<BR>            {<BR>                echo "函数返回false";<BR>            }<BR>        }<BR>        else<BR>        {<BR>            echo "函数返回数字或字符串:" . $TestReturnResult;<BR>        }<BR>        echo "<br /><br />";<BR>    }<BR>}</P><P>/**<BR> * 计算组合的函数<BR> *<BR> * @author                   李玉鹏<BR> * @param  array $CombinList 待排列组合的2维数组<BR> * @return array             组合后的数组<BR> */<BR>function sysCombineArray($CombinList)<BR>{<BR>    if(!is_array(current($CombinList)))<BR>    {<BR>        echo "参数不是2维数组";<BR>        return false;<BR>    }</P><P>    /* 计算C(a,1) * C(b, 1) * ... * C(n, 1)的值 */<BR>    $CombineCount = 1;<BR>    foreach($C<mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark><pre>搞代gaodaima码

ombinList as $Key => $Value)
{
$CombineCount *= count($Value);
}

$RepeatTime = $CombineCount;
foreach($CombinList as $ClassNo => $ParamList)
{
// $ParamList中的元素在拆分成组合后纵向出现的最大重复次数
$RepeatTime = $RepeatTime / count($ParamList);

$StartPosition = 1;

foreach($ParamList as $Param)
{
$TempStartPosition = $StartPosition;

$SpaceCount = $CombineCount / count($ParamList) / $RepeatTime;

for($J = 1; $J <= $SpaceCount; $J ++)
{
for($I = 0; $I < $RepeatTime; $I ++)
{
$Result[$TempStartPosition + $I][$ClassNo] = $Param;
}
$TempStartPosition += $RepeatTime * count($ParamList);
}
$StartPosition += $RepeatTime;
}
}

return $Result;
}
?>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用于测试php函数的代码_PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址