程序运行流程分为三大类,分别是顺序、分支和循环。
1、条件控制语句(分支)
1)if语句,通过判断exp的真假来选择运行部分语句。它有多种类型:
if (exp) 语句; | if (exp) { 语句块; } | if (exp): 语句块; endif; |
if (exp) 语句1; else 语句2; | if (exp) { 语句块; } else { 语句块; } | if (exp): 语句块; else: 语句块;; endif; |
if (exp1) 语句1; elseif (exp2) 语句2; else 语句3; | if (exp1) { 语句块; } elseif (exp2) { 语句块; } elseif (exp3) { 语句块; } else { 语句块; } | if (exp1): 语句块; elseif (exp2): 语句块; elseif (exp3): 语句块; else: 语句块; endif; |
补充一句:PHP的语句是以;为单位,所以分号之前可以在任意地方换行,PHP都能辨认并运行,但前提当然是要具备可读性。 |
另外,还有一种特殊用法,非常的实用:
<?php
$lbl="h1";
if ($lbl=="h1"):?>
<h1>Hello, world!</h1>
<?else:?>
<h2>Hello, world!</h2>
<?endif;?>
结果输出<h1>Hello, world!</h1>
2)switch语句,顾名思义是开关的意思,用于对exp的多种可能值进行分支。
switch (exp){ case exp1: 语句块; break; case exp2: 语句块; break; default: 语句块; break; } | switch (exp): case exp1: 语句块; break; case exp2: 语句块; break; default: 语句块; break; endswitch; |
首先计算出exp的值,让它和各case的值进行比较,如果满足则运行该case中的语句块,并退出switch。如果都不满足,则运行default中的语句块,如果default语句省略,则不运行任何语句。另外,如果省略了break;,则在匹配了一个case后会继续比较,否则匹配一个case便会跳出switch语句。
2、循环控制语句(循环)
1)while和do-while
while (exp) 语句; | while (exp){ 语句块; } | while (exp): 语句块; endwhile; |
do 语句; white (exp) ; | do { 语句块; } while(exp) ; |
两者区别仅在于如果条件不为真,while可以一遍都不执行,而do-while至少会执行一遍。
2)for语句
for (exp1;exp2;exp3) 语句; | for (exp1;exp2;exp3) { 语句块; } | for (exp1;exp2;exp3): 语句块; endfor; |
首先在exp1进行初始化,exp2表示结束的条件,exp3则表示每循环一次要对初始化变量做的调整。如:
for ($i=1;$i<=10;$i++){
print "$i ";
}//输出1 2 3 4 5 6 7 8 9 10
4、循环控制
1)break语句:跳出当前循环。如果使用break n;则跳出n层循环,也就是说break;和break 1;是等价的。另外,前面在讲解switch时也用到了break,所以switch也应该在使用break n;的时候被记数。
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />/n";
break 1; //退出switch
case 10:
echo "At 10; quitting<br />/n";
break 2; //退出while
break;
}
}
2)continue语句:跳过该次循环,进如下一次循环。同样有continue n;