程序流程控制

PHP的流程控制语句大多与C语言一致,仅有个别不同。

条件控制语句

条件控制的典型语句有if语句和switch语句。

(1)if语句

语法:if(表达式)语句1[else语句2]

当表达式为真时,就执行“语句1”,否则执行“语句2”。其中“语句1”“语句2”可以是任意一个PHP语句。例如:

if($a>$b) $max = $a; else $max = $b;上面的[ ]表示若不需要可以省略。

(2)if语句的嵌套

if语句一般用于解决单分支、双分支问题,必要时,也可以解决多分支问题。

if语句的嵌套格式:

1
2
3
4
5
6
7
if(表达式1)语句1
elseif(表达式2)语句2
elseif(表达式3)语句3
.
.
.
else 语句n

在PHP中elseif可以隔开写成else if

例:从输入框中输入一个数,单击“提交”按钮后输出成绩等级,90分以上记作优,80~89记作良………

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!doctype html>
<meta charset="utf-8">
<form id="form1" name="form1" method="post" action="">
<input type="text" name="score" id="score"/>
<input type="submit" name="button" id="button" value="提交"/>
</form>

<?php
if(isset($_REQUEST["button"]))
{
$score = $_REQUEST["score"];
if($score>=90) $grade = '优';
elseif($score>=80) $grade = '良';
else if($score>=70) $grade = '差';
else if($score>=60) $grade = '很差';
else $grade = '非常差';
echo "你的成绩等级为:" .$grade;
}
?>

(3)switch语句

switch语句也称为多分支语句,它可以根据表达式的值来决定执行哪个case块的语句

switch语句的语法格式:

1
2
3
4
5
6
7
8
9
10
11
12
switch(表达式)
{ case 常量1:语句块1;
[break];
case 常量2:语句块2;
[break];
.
.
.
case 常量n:语句块n;
[break];
[default:语句块n+1;]
}

首先计算表达式的值,如果表达式值与某个case块的常量相等,就转去执行该case块的语句,当表达式值与任何case块的常量都不相等时,就执行default中的语句。

注:(1)表达式的类型可以是数值型或字符串型(2)多个不同的case可以执行同一个语句块

例如:从文本框中输入一个月份,单击“提交”按钮后输出该月份的天数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!doctype html>
<meta charset="utf-8">

<form id="form1" name="form1" method="post" action="">
请输入你要查询的月份:
<input type="text" name="month" id="month"/>
<input type="submit" name="button" id="button" value="提交"/>
</form>

<?php
if(isset($_REQUEST["button"]))
{
$month = $_REQUEST["month"];
switch($month)
{
case 1;
case 3;
case 5;
case 7;
case 8;
case 10;
case 12: $day = 31 ."天";break;
case 4;
case 6;
case 9;
case 11: $day = 30 ."天";break;
case 2: $day = 28 ."天";break;
default: $day = "你所输入的月份不合法,请重新输入";
}
echo ("$month 月份的天数为:.$day");
}
?>

循环控制语句

循环控制语句简称循环语句,PHP中有4中循环语句,分别是while语句、do-while语句、for语句、foreach语句

(1)while循环语句

语法格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
while(表达式)语句,例:用while循环语句求1~100的偶数和。
<!doctype html>
<?php
$s = 0;
$i = 2;
while($i<=100)
{
$s = $s+$i;
$i = $i+2;
}
echo("和为:$s");
?>

(2)do-while循环语句

语法格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
do
循环体语句
while(表达式);
do-while语句求1~100的偶数和。
<!doctype html>
<!doctype html>
<?php
$s = 0;
$i = 1;
do
{
$s = $s+$i;
$i = $i+2;
}while($i<=100);
echo("和为:$s");
?>

注:while语句的特点是:先判断后执行,可能一次也不执行循环体语句。而do-while语句是先执行后判断,至少要执行一次循环体语句

(3)for循环语句

语法格式:for(表达式1;表达式2;表达式3)循环体语句

for语句

说明:(1)表达式1常用于对循环变量赋初始值;表达式2常用于判断循环变量是否越过终值;表达式3常用于修改循环变量的值。(2)表达式1,表达式2,表达式3都可以省略,但分号不能省略。例如:for(;;)语句。

1
2
3
4
5
6
7
8
for语句求1~100的偶数和
<!doctype html>
<?php
$a = 0;
for($i = 2;$i<=100;$i+=2)
$s = $s+$i;
echo("和为:$s");
?>

(4)foreach循环语句

foreach语句用于列举一个数组中的所有元素。

语法格式:

1
2
3
4
5
6
7
8
foreach(数组名 as 成员名)
语句
<!doctype html>
<?php
$a = array(3,6,9,12,15,18);
foreach($a as $x);
echo("$x");
?>

功能:对于数组中的每个元素,都是重复执行的循环体。成员名代表数组中的一个元素。

跳转语句
  • break语句:中止并跳出循环。
  • continue语句:中止当前的循环,重新开始一个新的循环。

break语句只能用于switch语句中或循环体内,当break语句用于循环体内时,常与if语句配合使用。continue语句只能用于循环体内,并常与if语句配合使用。

文件包含语句

在一个PHP文件中,可以直接用“文件包含语句”把另一个文件的所有内容包含进当前位置。文件包含语句共有4种,其关键字及语法格式:

include(‘文件名’);
include_once(‘文件名’);
require(‘文件名’);
require_once(‘文件名’);

一方面,include及require表示直接把文件包含进来;include_once和require_once表示只把文件包含进来一次,不重复包含。另一方面,include及include_once当找不到被包含的文件时,浏览器会发出警告信息但仍继续执行代码;require及require_once当找不到被包含的文件时,浏览器会发出致命错误信息并中止执行代码。上述“文件名”均可采用相对路径或绝对路径两种方式,但要注意的是,路径分隔符要采用斜杠(/)来表示。若省略路径,则表示仅在当前目录中查找文件。