PHP开发从入门到精通课件第7章_第1页
PHP开发从入门到精通课件第7章_第2页
PHP开发从入门到精通课件第7章_第3页
PHP开发从入门到精通课件第7章_第4页
PHP开发从入门到精通课件第7章_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章PHP的控制语句

任何PHP脚本都是由一系列语句构成的。一条语句可以是一个赋值语句、一个函数调用、一个循环,甚至一个什么也不做的(空语句)条件语句。语句通常以分号结束。此外,还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。【例7-1】if…else判断 if判断分为if判断、if…else判断以及if…else…else多重判断等三种形式。本例中对这三种结构进行了举例说明。 if判断

语句结构为:if(expr)statement

如果expr的值为TRUE,PHP将执行statement;如果值为FALSE,将忽略statement。

如:if($name=="sunny")echo"你的名字是对的!"."<br>";【例7-1】if…else判断 if…else判断

语句结构为:if(expr)statement1elsestatement2

如果expr的值为TRUE,PHP将执行statement1;如果值为FALSE,PHP将执行statement2。【例7-1】if…else判断 if…else…else多重判断

语句结构为:if(expr1)statement1elseif(expr2)statement2……elseif(exprn)statementnelsestatement

判断第一个表达式expr1,如果为TRUE则执行statement1语句,然后跳出,执行后续语句;如果为FALSE,再接着判断expr2,如果为TRUE则执行statement2语句,然后跳出,执行后续语句;如果为FALSE,再接着判断expr3……一直到exprn,若条件仍然为FALSE,则执行else后的statement语句。【例7-1】if…else判断 if语句可以无限层地嵌套在其他if语句中,这给程序的不同部分的条件执行提供了充分的弹性。注意:(1)若statement不是一条语句,而是若干条语句组,记住,一定要用{}括起来。(2)else后不能跟条件表达式,若要指定新的条件表达式,则使用elseif语句。(3)在PHP中,elseif与elseif是一样的,两者显示的效果一样。【例7-2】switch…case判断switch语句的语法结构如下:switch(expr){case表达式1:statement;case表达式2:statement;……default:statement;}

执行过程为:首先计算表达式expr,然后将这个值与第一个case后的表达式1进行比较,若相等,则执行该case后的相应语句;否则与第二个case后的表达式2进行比较……,若一直没有找到匹配项,则执行default下的statement语句块,直到遇到语句块的结尾或者遇到break语句为止。【例7-2】switch…case判断 break语句的意思是结束当前循环的执行,并把控制返回给紧跟在该循环后面的下一个语句。

注意:

(1)并不是每一个case语句都需要包含一个值,可以让某个case语句为空,这表示可以忽略向case结构中添加新的语句。当变量与某个值匹配,但又不希望程序执行任何操作,就可以采取这种方法。

(2)在case语句中指定的表达式只能是整数、字符串、浮点数据类型,不能使用数组或对象值作为case表达式。【例7-3】while循环 while循环是PHP中最简单的循环类型,和C语言中的while循环一样。while语句的基本格式是:while(expr){statement1;statement2;}或:while(expr)statement; while语句的含义很简单,它告诉PHP只要while表达式的值为TRUE就重复执行嵌套中的循环语句。表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。有时如果while表达式的值一开始就是FALSE,则循环语句一次都不会执行。【例7-3】while循环

注意:

(1)实例中的“ ”代表一个半角空格;HTML用“&”加字符串表示一些特殊字符。空格是“ ”。一个汉字要占2个英文字符的大小,空2个汉字的位置就需要加4个“ ”。

(2)使用while循环时,必须在while执行体中使判断条件有所改变。如果没有的话就成为死循环,永无止境地执行下去。你会感觉到电脑越来越慢,简直不堪重负,这是因为死循环在耗尽系统资源。所以一定要给while循环设置一个退出循环的出口。(3)while的判断表达式支持所有合法的表达式,包括带有运算符的表达式。【例7-4】do…while循环do…while语句的语法结构:do{statement;}while(expr);而比较while循环:while(expr){statement1;statement2;}

此时发现,while循环一开始就进行条件表达式的判断,若不满足,则一次也不执行循环体的结构;但do…while循环则不同,先执行一次循环体语句,再来判断条件表达式的值,如果为真则继续执行循环体,否则跳出循环。【例7-5】for循环 for循环的语法结构如下:for(expr1;expr2;expr3){statement;}

其中三个表达式expr1、expr2、expr3分别有以下特点: expr1:在循环开始时执行一次,初始化循环控制变量。 expr2:循环控制表达式,每一次循环开始之前都要对这个表达式进行判断,若为真,则继续执行循环;否则,退出循环。 expr3:对循环控制变量进行递增或者递减,控制循环变量的计数;这个表达式在每次循环结束之后进行。

每个表达式都可以为空,expr2为空则无限循环下去。【例7-6】for…each循环 foreach循环和Perl以及其他语言很像,这只是一种遍历数组的方法。foreach循环仅能用于数组,当试图将其用于其他数据类型或者一个未初始化的变量时会产生错误。它有两种语法,第二种比较次要,但却是第一种的有用的扩展。● foreach(array_expras$value)statement● foreach(array_expras$key=>$value)statement

第一种格式遍历给定的array_expr数组。每次循环中,当前单元的值被赋给$value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。【例7-6】for…each循环

第二种格式做同样的事情,不同的是当前单元的键名也会在每次循环中被赋给变量$key。

也可以将本例改成第二种格式,修改如下:foreach($studentas$key=>$value){ //循环输出数组元素echo"\$student[$key]=>$value.\n";}【例7-6】for…each循环注意:

(1)foreach目前只能遍历数组和对象。

(2)foreach不支持用“@”来抑制错误信息的能力。

(3)当foreach开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在foreach循环之前调用reset()。

(4)除非数组是被引用,foreach所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组指针不会被each()结构改变,对返回的数组单元的修改也不会影响原数组。不过原数组的内部指针的确在处理数组的过程中向前移动了。假定foreach循环运行到结束,原数组的内部指针将指向数组的结尾。

(5)自PHP5起,可以很容易地通过在$value之前加上&来修改数组的单元。此方法将以引用赋值而不是拷贝一个值。【例7-7】break语句

在使用while循环、do…while循环、for循环或者在【例7-2】中出现的switch…case判断时,有时并不需要执行到满足循环控制变量的条件为止。若想在循环体中满足某一特定条件时退出循环,就会采用break语句。break语句的作用就是退出循环语句或者switch…case判断。

在for循环中使用的语法如下:for(expr1;expr2;expr3){if(expr4)break;}【例7-8】continue语句 continue语句在循环结构中用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环,可用于while循环、do…while循环、for循环或者switch…case判断中,功能为跳出本次循环,转而进入下一次循环的判断。【例7-9】嵌套控制结构 将一种控制语句嵌套在另一种控制语句中,比如,for循环中可以嵌套for循环或者其他的while循环等,像本例中,for循环就嵌套了for循环。这种结构称为嵌套控制结构。 如:for($i=0;$i<=9;$i++) //外层循环{for($j=0;$j<=9;$j++) //内层循环{$sum=$i*$j; //乘法echo$i."*".$j."=".$sum."  "; //输出}echo"<br>"; //换行}上面的代码执行过程为:外层的for循环首先进行计算,并执行直到$i不再小于等于9为止。外层循环执行1次,内层循环执行10次。因此,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论