论文部分内容阅读
本文可以学到
1 了解PHP程序三种最基本的程序流程
2 通过if判断语句选择不同的结果
3 以switch替代if完成多重选择
Just Do It!
本文的实例,为了简单起见,是通过URL来传递人物姓名变量参数的,其实我们可以做得更专业一些,通过表单中的输入框来提交姓名变量,并在文本框中显示计算结果。另外还可以通过HTML的相关知识,对网页界面做进一步美化。大家可以自己试一试,给本文的人品计算器升升级。
网络大补贴
PHP程序设计的控制流程
限于篇幅,本文对循环结构等其他的程序结构没介绍,大家可以参考这篇文章,这里有较为详细的解说。
网址:http://wf66.com/page/20069/160634E5C3.htm
实战:人品背后的秘密
网上曾一度流行一种“人品计算器”的游戏,随便输入某个人的名称,它就会计算出这个人的人品高低,除了打分外还会加一些“你的人品太差,要好好约束自己啊!”之类的评语。这个游戏纯粹是娱乐性质,你可千万别当真,不过因为它非常搞笑,确实为网站赚了不少流量。那么,今天就让我们来做一个PHP版的“人品计算器”吧。
实战代码放送
这个游戏的原理非常简单:把访问者输入的名称,按一定的规律转化为数字(即人品得分),再根据这个数字的大小进行判断,分别给出不同的评语。下面先给大家看段代码,然后再来逐一分析。如果懒得输入,可从http://work.newhua.com/cfan/200720/cfrptest.rar处直接下载。另外要注意:每一行代码前面的数字序号,是为了后面讲解方便,不需要输入。
01 02 parse_str($_SERVER["QUERY_STRING"]);
03 $text = ord($name);
04 if ($text>200){
05 $text=$text-200;
06 }else if($text>100){
07 $text=$text-100;
08 }
09
10 if($text<20){
11 echo "你的人品得分:$text
";
12 echo "我怀疑你是不是人类,居然没有一点人品。";
13 }else if($text<40){
14 echo "你的人品得分:$text
";
15 echo "跟你谈人品无异于对牛谈琴。";
16 }else if($text<60){
17 echo "你的人品得分:$text
";
18 echo "人品还算不错,只是一不留神就会做坏事。";
19 }else if($text<80){
20 echo "你的人品得分:$text
";
21 echo "已经很不错了,可以为人师表。";
22 }else{
23 echo "你的人品得分:$text
";
24 echo "你就是一个完人,大家学习的楷模。";
25 }
26 ?>
实战效果
上面的实例我已经上传到服务器上,大家可以在网址“http://visit.cfan.com.cn/temp/cfrptest.php?name=”等号的后面输入任意人的名称,按回车键后即可看到人品计算的结果了(当然纯为娱乐性质)。比如输入人名为“小特”,结果将如图1所示:“你的人品得分:8,我怀疑你是不是人类,居然没有一点人品。”
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200720/dnah20072048-1-l.jpg)
(1)
层层剥笋看原理
上面的实例,第1行的“”是PHP代码的开始和结束标识符,这是必须要有的,不过开始标识符中的“php”倒是可以省略成“”。在这两个标识符之间,就可以写下任意多的其他PHP代码了。
心细的朋友可能会发现,许多网址的最后会带一个问号“?”,问号后面还会带一串参数。比如你在百度搜索“einstein”,会看到地址栏变成了:“http://www.baidu.com/s?wd=einstein&cl=3”这就是浏览器向服务器传递参数的所谓GET方法。为了简单起见,本例也是通过URL来传递人名参数的,第2行的parse_str函数就是用来提取URL后面的人名参数。人名一般为字符串类型,如何将它转换成数字呢?第3行的ord正是将字符转换成ASCII码数字的函数。
第4到第8行,就是今天我们要说的主角之一:if判断语句。平时我们说:如果(if)你不想获得好的考试成绩,你可以随便玩;否则(else)想要考试成绩好,平时就得多努力学习。在PHP程序中就是如下所示来表达多项选择的(见图2):
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200720/dnah20072048-2-l.jpg)
(2)
if(条件){
如果条件成立,执行本花括号内的代码;
}else{
如果条件不成立,则执行本花括号代的代码;
}
注意,每个PHP语句代码,一般都要加一个分号(;)表示结束,而花括号(})同样有结束语句的意义,所以就不用再加分号了。
★上面实例中,为什么要将人名转换后的数字减去200或100呢?原来ord函数转换出的是ASCII码数字,最大为255,超出了我们计数的最大值100,所以减去200或100,就可以将最终数字控制在100之内了。
从第10到第25行,同样还是用的if判断语句,稍有不同的是,这里连续用了多个“else if”。这就是if语句的所谓“嵌套”用法,通过这种一层套一层的方法,便可以实现多种不同的答案选择了。从本例代码可以很明显地看出,这个游戏将100分成了0~20、21~40等5个等级,每一等级都给出了不同的评价。
★无限嵌套的if语句是不是看着挺麻烦的?其实PHP程序中提供了另外一个语句可以用来替代嵌套if,这就是switch语句。它的语法形式为:
switch(条件变量){
case a:
//如果条件变量等于a(只是假设,你也可以设置成其他的,如x、9等,下同)就执行这里的语句代码;
break; //不再执行后面的代码,直接跳出switch结构,下同。
case b:
//如果条件变量等b,就执行此处的语句代码;
break;
case c:
//语句代码;
break;
......
default:
//如果上面条件都不符合,就默认执行此处代码。可以省略
}
三种控制全掌握,
走遍天下也不怕
一般来说,程序执行时都是按编程时所确定的次序一条一条地由前往后顺序进行的,这就是所谓的“顺序结构”(sequential execution),也是所有程序的常态;但当一件事有N多选择的时候,顺序执行显然行不通,这时就要在顺序结构的大前提下引入选择结构(selection),也就是上面我们所介绍的if和switch结构;如果某件事需要重复进行,比如月亮里的吴刚要砍倒桂花树,他的这个动作就需要循环往复地进行,虽然可以通过if语句来实现,但是太繁烦,所以程序中又引入循环结构(repetition structure),PHP中用来完成循环操作的是while和for语句。
程序的流程,基本上逃不出上面所说的三种流程,而且在C、C++、Java、JavaScript等等其他程序语言中,这三种流程的语法形式几乎一模一样,所以你学会了PHP中的控制语句的使用,假如以后要用到C++、JavaScript等,不用重新学习就可以上手操作了。
1 了解PHP程序三种最基本的程序流程
2 通过if判断语句选择不同的结果
3 以switch替代if完成多重选择
Just Do It!
本文的实例,为了简单起见,是通过URL来传递人物姓名变量参数的,其实我们可以做得更专业一些,通过表单中的输入框来提交姓名变量,并在文本框中显示计算结果。另外还可以通过HTML的相关知识,对网页界面做进一步美化。大家可以自己试一试,给本文的人品计算器升升级。
网络大补贴
PHP程序设计的控制流程
限于篇幅,本文对循环结构等其他的程序结构没介绍,大家可以参考这篇文章,这里有较为详细的解说。
网址:http://wf66.com/page/20069/160634E5C3.htm
实战:人品背后的秘密
网上曾一度流行一种“人品计算器”的游戏,随便输入某个人的名称,它就会计算出这个人的人品高低,除了打分外还会加一些“你的人品太差,要好好约束自己啊!”之类的评语。这个游戏纯粹是娱乐性质,你可千万别当真,不过因为它非常搞笑,确实为网站赚了不少流量。那么,今天就让我们来做一个PHP版的“人品计算器”吧。
实战代码放送
这个游戏的原理非常简单:把访问者输入的名称,按一定的规律转化为数字(即人品得分),再根据这个数字的大小进行判断,分别给出不同的评语。下面先给大家看段代码,然后再来逐一分析。如果懒得输入,可从http://work.newhua.com/cfan/200720/cfrptest.rar处直接下载。另外要注意:每一行代码前面的数字序号,是为了后面讲解方便,不需要输入。
01 02 parse_str($_SERVER["QUERY_STRING"]);
03 $text = ord($name);
04 if ($text>200){
05 $text=$text-200;
06 }else if($text>100){
07 $text=$text-100;
08 }
09
10 if($text<20){
11 echo "你的人品得分:$text
";
12 echo "我怀疑你是不是人类,居然没有一点人品。";
13 }else if($text<40){
14 echo "你的人品得分:$text
";
15 echo "跟你谈人品无异于对牛谈琴。";
16 }else if($text<60){
17 echo "你的人品得分:$text
";
18 echo "人品还算不错,只是一不留神就会做坏事。";
19 }else if($text<80){
20 echo "你的人品得分:$text
";
21 echo "已经很不错了,可以为人师表。";
22 }else{
23 echo "你的人品得分:$text
";
24 echo "你就是一个完人,大家学习的楷模。";
25 }
26 ?>
实战效果
上面的实例我已经上传到服务器上,大家可以在网址“http://visit.cfan.com.cn/temp/cfrptest.php?name=”等号的后面输入任意人的名称,按回车键后即可看到人品计算的结果了(当然纯为娱乐性质)。比如输入人名为“小特”,结果将如图1所示:“你的人品得分:8,我怀疑你是不是人类,居然没有一点人品。”
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200720/dnah20072048-1-l.jpg)
(1)
层层剥笋看原理
上面的实例,第1行的“”是PHP代码的开始和结束标识符,这是必须要有的,不过开始标识符中的“php”倒是可以省略成“”。在这两个标识符之间,就可以写下任意多的其他PHP代码了。
心细的朋友可能会发现,许多网址的最后会带一个问号“?”,问号后面还会带一串参数。比如你在百度搜索“einstein”,会看到地址栏变成了:“http://www.baidu.com/s?wd=einstein&cl=3”这就是浏览器向服务器传递参数的所谓GET方法。为了简单起见,本例也是通过URL来传递人名参数的,第2行的parse_str函数就是用来提取URL后面的人名参数。人名一般为字符串类型,如何将它转换成数字呢?第3行的ord正是将字符转换成ASCII码数字的函数。
第4到第8行,就是今天我们要说的主角之一:if判断语句。平时我们说:如果(if)你不想获得好的考试成绩,你可以随便玩;否则(else)想要考试成绩好,平时就得多努力学习。在PHP程序中就是如下所示来表达多项选择的(见图2):
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah200720/dnah20072048-2-l.jpg)
(2)
if(条件){
如果条件成立,执行本花括号内的代码;
}else{
如果条件不成立,则执行本花括号代的代码;
}
注意,每个PHP语句代码,一般都要加一个分号(;)表示结束,而花括号(})同样有结束语句的意义,所以就不用再加分号了。
★上面实例中,为什么要将人名转换后的数字减去200或100呢?原来ord函数转换出的是ASCII码数字,最大为255,超出了我们计数的最大值100,所以减去200或100,就可以将最终数字控制在100之内了。
从第10到第25行,同样还是用的if判断语句,稍有不同的是,这里连续用了多个“else if”。这就是if语句的所谓“嵌套”用法,通过这种一层套一层的方法,便可以实现多种不同的答案选择了。从本例代码可以很明显地看出,这个游戏将100分成了0~20、21~40等5个等级,每一等级都给出了不同的评价。
★无限嵌套的if语句是不是看着挺麻烦的?其实PHP程序中提供了另外一个语句可以用来替代嵌套if,这就是switch语句。它的语法形式为:
switch(条件变量){
case a:
//如果条件变量等于a(只是假设,你也可以设置成其他的,如x、9等,下同)就执行这里的语句代码;
break; //不再执行后面的代码,直接跳出switch结构,下同。
case b:
//如果条件变量等b,就执行此处的语句代码;
break;
case c:
//语句代码;
break;
......
default:
//如果上面条件都不符合,就默认执行此处代码。可以省略
}
三种控制全掌握,
走遍天下也不怕
一般来说,程序执行时都是按编程时所确定的次序一条一条地由前往后顺序进行的,这就是所谓的“顺序结构”(sequential execution),也是所有程序的常态;但当一件事有N多选择的时候,顺序执行显然行不通,这时就要在顺序结构的大前提下引入选择结构(selection),也就是上面我们所介绍的if和switch结构;如果某件事需要重复进行,比如月亮里的吴刚要砍倒桂花树,他的这个动作就需要循环往复地进行,虽然可以通过if语句来实现,但是太繁烦,所以程序中又引入循环结构(repetition structure),PHP中用来完成循环操作的是while和for语句。
程序的流程,基本上逃不出上面所说的三种流程,而且在C、C++、Java、JavaScript等等其他程序语言中,这三种流程的语法形式几乎一模一样,所以你学会了PHP中的控制语句的使用,假如以后要用到C++、JavaScript等,不用重新学习就可以上手操作了。