再见西城 发表于 2015-2-4 00:31:12

PHP网站制作之用于测试php函数的代码

怎样学习,大家都知道编程是1门很枯燥的事业,所以大家一定要有兴趣,可能刚开始打算学的时候是因为别人说php有多好,php多么流行,但是后来伴随着学习的深入,你的这些函数   明天溘然想到的,就写了一段测试php函数的代码。
<P><?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         李玉鹏<leeyupeng@163.com>
* @paramstring$FunctionName函数称号
* @paramarray   $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 . "<br />";
    foreach($TestParamList as $Key => $TestParamInfo)
    {
      echo "入手下手测试第" . $Key . "组参数:<br />";
      foreach($TestParamInfo as $ParamKey => $Param)
      {
            ${"Param" . $ParamKey} = $Param;
            $TempParamList[] = "$Param" . $ParamKey;
            if(is_array($Param))
            {
                echo "参数" . $ParamKey . ",类型为数组:";
                echo "<pre>";
                print_r($Param);
            }
            elseif(is_bool($Param))
            {
                echo "参数" . $ParamKey . ",类型为boll:";
                if($Param)
                {
                  echo "true";
                }
                else
                {
                  echo "false";
                }
            }
            else
            {
                echo "参数" . $ParamKey . ",类型为字符串或数字:";
                echo $Param;
            }
            echo "<br />";
      }
      $Params = join(", ", $TempParamList);
      unset($TempParamList);
      eval("$TestReturnResult = " . $FunctionName . "(" . $Params . ");");
      if(is_array($TestReturnResult))
      {
            echo "函数前往数组:<pre>";
            print_r($TestReturnResult);
      }
      elseif(is_bool($TestReturnResult))
      {
            if($TestReturnResult)
            {
                echo "函数前往true";
            }
            else
            {
                echo "函数前往false";
            }
      }
      else
      {
            echo "函数前往数字或字符串:" . $TestReturnResult;
      }
      echo "<br /><br />";
    }
}
/**
* 盘算组合的函数
*
* @author                   李玉鹏<leeyupeng@163.com>
* @paramarray $CombinList 待分列组合的2维数组
* @return array             组合后的数组
*/
function sysCombineArray($CombinList)
{
    if(!is_array(current($CombinList)))
    {
      echo "参数不是2维数组";
      return false;
    }
    /* 盘算C(a,1) * C(b, 1) * ... * C(n, 1)的值 */
    $CombineCount = 1;
    foreach($CombinList 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;
}
?>
可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。

老尸 发表于 2015-2-4 08:45:16

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

灵魂腐蚀 发表于 2015-2-9 20:28:17

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

山那边是海 发表于 2015-2-27 21:01:16

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

莫相离 发表于 2015-3-5 03:09:13

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

第二个灵魂 发表于 2015-3-6 08:11:16

你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

谁可相欹 发表于 2015-3-6 21:27:31

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

再见西城 发表于 2015-3-13 09:28:25

基础有没有对学习php没有太大区别,关键是兴趣。

若相依 发表于 2015-3-16 21:35:08

兴趣是最好的老师,百度是最好的词典。

柔情似水 发表于 2015-3-18 14:26:49

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

精灵巫婆 发表于 2015-3-25 22:51:36

兴趣是最好的老师,百度是最好的词典。

小妖女 发表于 2015-3-30 10:27:19

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

蒙在股里 发表于 2015-3-31 20:26:17

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

简单生活 发表于 2015-4-5 14:10:38

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

admin 发表于 2015-4-13 03:46:37

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

乐观 发表于 2015-4-21 15:42:12

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

分手快乐 发表于 2015-4-22 05:12:06

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

变相怪杰 发表于 2015-4-24 01:27:36

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

愤怒的大鸟 发表于 2015-5-4 19:21:20

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

活着的死人 发表于 2015-5-10 08:57:23

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
页: [1] 2
查看完整版本: PHP网站制作之用于测试php函数的代码