仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1359|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网站制作之用于测试php函数的代码

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:31:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
怎样学习,大家都知道编程是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>
* @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 . "<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>
* @param  array $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的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
莫相离 该用户已被删除
5#
发表于 2015-3-5 03:09:13 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
第二个灵魂 该用户已被删除
6#
发表于 2015-3-6 08:11:16 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
谁可相欹 该用户已被删除
7#
发表于 2015-3-6 21:27:31 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
再见西城 该用户已被删除
8#
 楼主| 发表于 2015-3-13 09:28:25 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
若相依 该用户已被删除
9#
发表于 2015-3-16 21:35:08 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
柔情似水 该用户已被删除
10#
发表于 2015-3-18 14:26:49 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
精灵巫婆 该用户已被删除
11#
发表于 2015-3-25 22:51:36 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
小妖女 该用户已被删除
12#
发表于 2015-3-30 10:27:19 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
蒙在股里 该用户已被删除
13#
发表于 2015-3-31 20:26:17 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
简单生活 该用户已被删除
14#
发表于 2015-4-5 14:10:38 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
admin 该用户已被删除
15#
发表于 2015-4-13 03:46:37 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
乐观 该用户已被删除
16#
发表于 2015-4-21 15:42:12 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
分手快乐 该用户已被删除
17#
发表于 2015-4-22 05:12:06 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
变相怪杰 该用户已被删除
18#
发表于 2015-4-24 01:27:36 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
愤怒的大鸟 该用户已被删除
19#
发表于 2015-5-4 19:21:20 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
活着的死人 该用户已被删除
20#
发表于 2015-5-10 08:57:23 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 13:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表