流程控制:
条件控制语句
1. if…else语句
if结构是包括PHP在内的很多语言的重要特性之一,它允许按照条件执行代码段,和C语言的结构很相似。语法格式:
if(expr1)
//代码段1
elseif(expr2)
//代码段2
…
else
//代码段n
(1)if语句
if(expr1)语句中,expr1是一个表达式,它返回布尔值。当表达式值为TRUE时,执行代码段1中的语句;值为FALSE时,则跳过这段代码。例如:
if($a==5) //判断$a是否等于5
{
$b=$a+5;
$a++;
}
(2)elseif语句
elseif也可以隔开来写做else if。只有在要判断的条件多于两个时才会使用到elseif语句,例如,判断一个数等于不同值的情况。elseif语句是if语句的延伸,其自身也有条件判断的功能。只有当上面的if语句中的条件不成立即表达式为FALSE时,才会对esleif语句中的表达式expr2进行判断。expr2的值为TRUE则执行代码段2中的语句,值为FALSE则跳过这段代码。elseif语句可以有很多个,例如:
<?php
$a=3;
if($a==1) //$a不等于1,跳过此代码段
{
echo "等于1";
}
elseif($a==2) //$a不等于2,跳过此代码段
{
echo "等于2";
}
elseif($a==3) //$a等于3,执行此代码段
{
echo "等于3";
}
?>
(3)else语句
else语句中不需要设置判断条件,只有当if和elseif语句中的条件都不满足时执行else语句中的代码段。由于if、elseif和else语句中的条件是互斥的,所以其中只有一个代码段会被执行。当要判断的条件只有两种情况时,可以省略elseif语句。例如:
<?php
$a=5;
$b=6;
if($a==$b)
echo "a等于b";
else
echo "a不等于b";
?>
(3)else语句
else语句中不需要设置判断条件,只有当if和elseif语句中的条件都不满足时执行else语句中的代码段。由于if、elseif和else语句中的条件是互斥的,所以其中只有一个代码段会被执行。当要判断的条件只有两种情况时,可以省略elseif语句。例如:
<?php
$a=5;
$b=6;
if($a==$b)
echo "a等于b";
else
echo "a不等于b";
?>
if语句还可以进行复杂的嵌套使用,从而建立更复杂的逻辑处理,例如:
<?php
$a=10;
if($a>5) //判断$a是否大于5
{
if($a<20) //$a>5,判断$a是否小于20
{
if($a<15) //$a<20,判断$a是否小于15
echo "a的值大于5小于15";
else
echo "a的值大于15小于20";
} else //$a大于等于20的情况
echo "a的值大于20";
} else //$a小于5的情况
echo "a的值小于5";
?>
2. switch语句
switch语句和具有同样表达式的一系列if语句相似。在同一个变量或表达式需要与很多不同值比较时,可使用switch语句。语法格式:
switch(var)
{
case var1:
//代码段1
break;
case var2:
//代码段2
break;
…
default:
//代码段n
}
1. while循环
while循环是PHP中最简单的循环类型,当要完成大量重复性的工作时,可以通过条件控制while循环来完成。语法格式:
while(exp)
{
//代码段
}
说明:当while()语句中表达式exp的值为TRUE时,就运行代码段中的语句,同时改变表达式的值。语句运行一遍后,再次检查表达式exp的值,如果为TRUE则再次进入循环,直到值为FALSE时就停止循环。如果表达式exp的值永远都是TRUE,则循环将一直进行下去,成为死循环。如果表达式exp一开始的值就为FALSE,则循环一次也不会运行。
例如,计算10的阶乘。
<?php
$sum=$m=1; //初始化
while($m<10)
{
$sum=$sum*$m; //累积
$m++; //$m自增1
}
echo $sum; //输出362880
?>
2. do-while循环
语法格式:
do
{
//代码段
}while(exp);
do-while循环与while循环非常相似,区别在于do-while循环首先执行循环内的代码,而不管while语句中的exp条件是否成立。程序执行一次后,do-while循环才来检查exp值是否为TRUE,为TRUE则继续循环,为FALSE则停止循环。而while循环是首先判断条件是否成立才开始循环。所以当两个循环中的条件都不成立时,while循环一次也没运行,而do-while循环至少要运行一次。例如:
<?php
$n=1;
do
{
echo $n ."<br>";
$n++;
}while($n<10);
?>
3. for循环
for循环是PHP中比较复杂的一种循环结构,语法格式如下:
for(expr1;condition;expr2)
//代码段
说明:表达式expr1在循环开始前无条件求值一次,这里通常设置一个初始值。表达式condition是一个条件,在循环开始前首先测试表达式condition的值。如果为FALSE则结束循环,如果为TRUE则执行代码段中的语句,循环执行完一次后执行表达式expr2,之后继续判断condition的值,如果为TRUE则继续循环,如果为FALSE则结束循环。例如:
<?php
$m=10;
for($i=0;$i<$m;$i++)
{
echo $i."<br>";
}
?>
4. foreach循环
foreach语句也属于循环控制语句,但它只用于遍历数组,当试图将其用于其他数据类型或者一个未初始化的变量时会产生错误
1. break控制符
break控制符在前面已经使用过,这里具体介绍。它可以结束当前for、foreach、while、do-while或switch结构的执行。当程序执行到break控制符时,就立即结束当前循环。例如:
<?php
$i=1;
while($i<10)
{
if($i>3)
break; //当$i>3时结束while循环
echo $i."<br>"; //输出$i,$i最后输出的值只有1,2,3
$i++; //$i自增1
}
?>
2. continue控制符
continue控制符用于结束本次循环,跳过剩余的代码,并在条件求值为真值时开始执行下一次循环。例如:
<?php
$m=5;
for($n=0;$n<10;$n++)
{
if($n==$m)
continue; //跳出本次循环
echo $n; //输出的结果是012346789
}
?>
3. return控制符
在函数中使用return控制符,将立即结束函数的执行并将return语句所带的参数作为函数值返回。在PHP的脚本或脚本的循环体内使用return,将结束当前脚本的运行。例如:
<?php
$n=5;
for($i=1;$i<10;$i++)
{
if($i>$n)
{
return; //当$i>5时结束脚本运行
echo "大于5"; //此处不输出任何内容
}
echo $i ." "; //输出1 2 3 4 5
}
?>
4. exit控制符
exit控制符也可结束脚本的运行,用法和return控制符类似。例如:
<?php
$a=5;
$b=6;
if($a<$b)
exit; //如果$a<$b则结束脚本
echo $a."小于".$b; //不输出
?>
对于流程控制语句,还有一个可以替换的语法形式。即用冒号(:)替换开始的花括号({),用新的关键字替换关闭花括号(})。新的关键字可以是endif、endswitch、endwhile、endfor或endforeach,这是由所使用的流程控制语句来决定的。例如:
<?php
$m=5;
if($m==5): //使用冒号代替左花括号
echo $m++;
echo "m的值加1";
endif; //使用“endif;”代替右花括号
while($m<10): //使用冒号代替左花括号
echo $m. "<br>";
$m++;
endwhile; //使用“endwhile;”代替右花括号
?>