目录
1 顺序执行
(1)任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句)。
(2)语句通常以分号结束。此外,还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。
(3)无论是语句或语句组,均依次顺序执行。
2 分支执行语句
2.1 单向分支 if
利用if判断条件语句,为真则执行语句块,否则继续顺序执行。
语法:
<?php
if (条件)
{
条件成立时要执行的代码;
}
?>
例子:
如果当前时间小于 20,下面的实例将输出 “Have a good day!”:
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
?>
2.2 双向分支 if…else
在条件成立时执行一块代码,条件不成立时执行另一块代码,请使用 if…else 语句。
语法:其中缩进在PHP语句中不影响执行结果,仅增强可阅读性。
<?php
if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
?>
2.3 多向分支 if…elseif…else
elseif,和此名称暗示的一样,是 if 和 else 的组合。和 else 一样,它延伸了 if 语句,可以在原来的 if 表达式值为 false 时执行不同语句。但是和 else 不一样的是,它仅在 elseif 的条件表达式值为 true 时执行语句。
语法:
<?php
if (条件)
{
if 条件成立时执行的代码;
}
elseif (条件)
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
?>
例子:
<?php
header("content-type:text/html;charset=utf-8");
$grade=rand(0,100);
if($grade>=90)
{
echo "A";
}
elseif($grade>=80)
{
echo "B";
}
elseif($grade>=70)
{
echo "C";
}
elseif($grade>=60)
{
echo "D";
}
else
{
echo "sorry";
}
?>
2.4 多向分支 switch
switch 语句用于根据多个不同条件执行不同动作。
语法:
<?php
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
#工作原理:
#首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。
#如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。
#default 语句用于不存在匹配(即没有 case 为真)时执行。
例子:
<?php
$day=rand(1,7);
switch($day)
{
case 1:
echo "Monday";
break;
case 2:
echo "Tuesday";
break;
case 3:
echo "Wednesday";
break;
case 4:
echo "Thursday";
break;
case 5:
echo "Friday";
break;
case 6:
echo "Saturday";
break;
default:
echo "Sunday";
}
?>
3 循环执行语句
3.1 while 循环
while 循环是 PHP 中最简单的循环类型。当条件表达式为真时,执行语句组。
语法:
while (条件)
{
要执行的代码;
}
例子:
<!--while循环-->
<?php
$i=0;
while($i<10)
{
echo ++$i;
echo "<br/>";
}
?>
代码执行结果如下:
3.2 do-while 循环
do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时检查。
语法:
do
{
要执行的代码;
}
while (条件);
例子:
<!--do while循环-->
<?php
$i=0;
do
{
echo ++$i;
echo "<br/>";
}
while($i<10)
?>
代码执行结果如下:
3.3 for 循环
for 循环用于您预先知道脚本需要运行的次数的情况。由于其条件表达式、条件更新表达式位置明显,可读性强,建议优先考虑。
语法:
for (初始值; 条件; 增量)
{
要执行的代码;
}
参数:
- 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
- 条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
- 增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
注释:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。
例子:
<!--for 循环-->
<?php
for($i=0;$i<5;$i++)
{
echo "The number is {$i}.<br/>";
}
?>
代码执行结果如下:
更多实例请参考文章《for》
3.4 foreach 循环
foreach 语法结构提供了遍历数组的简单方式。注意,foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。
语法:有两种表达式如下:
/*每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值*/
foreach ($array as $key => $value)
{
要执行代码;
}
/*每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值*/
foreach ($array as $key => $value)
{
要执行代码;
}
例子:
<?php
$x=array("Google","Runoob","Taobao");
foreach ($x as $value)
{
echo $value . PHP_EOL;
}
?>
代码执行结果如下:
更多实例请参考文章《foreach》。
4 特殊控制语句
4.1 break 语句
结束执行当前的 for、foreach、while、do-while、switch 结构。
break语句接受一个数字的可选参数,决定跳出几重循环。 默认值是 1,仅仅跳出最近一层嵌套结构。如break 2
指结束两层循环。
4.2 continue 语句
只能用在循环语句中,跳过本次循环而不是结束整个循环语句。理解好continue与break之间的区别。
特别地也可以应用在switch语句中,将结束整个switch语句。
4.3 exit() 与 die() 语句
用于结束当前整个程序的执行。
5 嵌套循环实例:九九乘法表
<!--九九乘法表-->
<?php
for($i=1;$i<10;$i++)
{
for($j=1;$j<=$i;$j++)
{
echo $i.'*'.$j.'='.($i*$j).' ';
}
echo "<br/>";
}
?>
代码执行结果如下:
6 归纳
(1)理解各种条件控制语句的执行顺序和判断条件;
(2)灵活应用各种条件控制语句。
参考文章
[1] 《流程控制》
[2] 《PHP菜鸟教程》
[2] 《【PHP基础】条件控制语句》