学习目的:掌握php的流程控制 4!W?z2ly~R
PsT v\!
1、if..else 循环有三种结构 @uD{`@[
&IY_z0=
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: -^yc yZ
03\8e?$
if (expr) { statement } n&&U9sf?
fszeJS}Dw
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 tF1%=&ss
}n8;A;axi
范例:本例省略大括号。 k"-#ox!
m8A1^ R
<?php #mxfU>vQ:
if ($state==1)echo "哈哈" ; B>21A9&
?> Eu~wbU"%
N>\?Aeh
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 X.5LB!I)
zgTi Az
范例:本例的执行部分有三行,不可省略大括号。 euC,]n.
$ !=:ES
<?php Y\S^DJy
if ($state==1) { %+J*oFwQu
echo "哈哈 ; -{mq\GvGn
echo "<br>" ; T<GD !j(
} Qj[O$L0 $
?> X}^gmu<Vla
4=cq 76
bd;f@)X
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 o:*iT=l
H43D=N&
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 =%G[vm/-)
<?php "b7C0NE
if ($state==1) { 1"PE@!]
echo "哈哈" ; rJj~cPwL"
echo "<br>"; ~[6|VpGc:
} >1zzDd_
else{ W}3vY]
echo "呵呵"; uS,$P34^oy
echo "<br>"; y Dw!u[:
} o)WSMV(&f
?> $4,6&dwg
n/D]r
hKYPH?b%
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 NQ=YTRU
Z_+No :F7I
直接看下面的例子 _"`h~jB
P://Zi6>
<?php Ry3 f'gx
if ( $a > $b ) { (P8oXb+%
echo "a 比 b 大" ; "KwKO8f
} elseif ( $a == $b ) { t,nB`g?
echo "a 等于 b" ; %Ski5q
} else { ^Yz05\
echo "a 比 b 小" ; nsk
6a
} s ~G{-)*
?> s6uAF(4,
ry"zec
B
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 pXa? Q@6
\>k+Oyj
2、 for 循环就单纯只有一种,没有变化,它的语法如下 JK^;-&
Z]d]RL&r
for (expr1; expr2; expr3) { statement } c-d}E!C:
Ymom 0g+f
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 T(F8z5s5
n&Bgpt~
下例是用 for 循环写的的例子。 13kl\<6
EjrK.|I0
<?php ",Mr+;;:[
for ( $i = 1 ; $i <= 10 ; $i ++) { iU+O(vi
echo "这是第".$i."次循环<br>" ; )1N~-VuT
} !ap}+_IA7^
?> 9!;/+P
1N,</<"
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 ]V^ >aUlj
6o6I]QL
语法如下 K|]/BjB/
*lc|iq\
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } %py3fzg
-%,=%FBi~4
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 $Y,y~4I
=bgWUu\F
<?php R.(PZC vS
switch ( date ( "D" )) { ]Q$S ei5
case "Mon" : lha)4d
echo "今天星期一" ; zcGmru|k
break; zncKd{Q\tP
case "Tue" : SMonJ;Y
echo "今天星期二" ; z9Z4MXl
break; >jz9o9?8
case "Wed" : $O3.ex V
echo "今天星期三" ; tTOBKA89
break; z;DNl#|!L
case "Thu" : GHY+q{'#V_
echo "今天星期四" ; (1 (~r"4I
break; 0nbY~j$A=
case "Fri" : rtNYX=P
echo "今天星期五" ; !#d5hjoX
break; 9fm9xTL
default: =WT&unw}
echo "今天放假" ; $Q"D>Qf{G
break; ;.'?(iEB
} t0,=U8]w
?> [;H-HpBaa
R:4@a ':H
这里需要注意的是break;别遗漏了,default,省略是可以的。 x$;RfK2&p
3^[P
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 KRz~3yH{c
tk]D)+{u&c
今天就说到这里,明天开始说数据库的使用。