php的流程控制 # p2 H( y, @, P* O0 g0 N6 T/ ~
( l+ [2 y8 x2 X- ~; J1、if……else 循环有三种结构( ~. k7 u: v' I2 y
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
, R- h$ _. h4 d$ @, e" C2 P0 U3 Y& `3 t ?, j
if (a) { statement }
; N% w$ d6 h8 A其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。1 i# P0 O e5 T) F! m4 J
范例:本例省略大括号。 0 y2 H3 }1 A0 `
8 {' y( q2 {* W
<?php
" d0 a# U6 k1 G3 g$ { eif ($a==1) echo "我爱php" ; 3 R0 R9 u- o6 g$ N
?> % A* k& g4 I4 x: e& o. U
( Z1 R) H( [1 I4 C. Q* m这里特别注意的是,判断是否相等是==而不是=。
' o0 E2 c$ ]. v范例:本例的执行部分有三行,不可省略大括号。 0 S/ ~; N4 ~3 V4 t/ w, h! d7 E; u
: y, B" C( H. z' t$ Y. R5 m6 C. {<?php ! \/ N" Q7 [- }1 c
if ($a==1) {
3 J) m9 o9 l/ X1 ~echo "我爱php" ;
9 h9 U8 T [8 V$ [1 f4 B/ }2 recho "<br>" ;
_; a- ]5 Q4 X S S9 {/ b} 4 b' Y9 a5 z+ x& F. I
?> $ ^0 A) _# X& A6 P8 K9 L: U% s
( ]( A9 P0 ?5 w' w第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
5 Z+ B) B. A' q7 s# {. U" D, M2 K/ J" V6 f8 I0 n
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
& ?8 l3 l/ X. X& C3 ]<?php
# d- V4 H* G; _if ($a==1) { 7 R5 n1 ^+ J& A9 T; n5 y# d9 z; R: h
echo "我爱php1"; ) s$ `; N, x* [3 S W) S
echo "<br>";
6 N C% V# j* t* M} 3 @/ ]2 U6 L9 z$ E$ T& I/ }* m
else {3 h( e2 @* }2 {% h# j
echo "我爱php2";2 `2 V9 f+ J5 a2 ^- c6 x$ h: d3 }7 }
echo "<br>"; & _7 M$ l9 S2 A
} ; c3 Y$ G. |- ~1 o V* |$ t( }) u6 ]
?>
5 j! K# i8 m( Q6 K' u$ }
6 [+ g: @/ K- c8 A& c第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。8 ` u7 p+ [2 E" d
直接看下面的例子
9 w! p- G: u9 L* W {, c' e<?php ! {% H5 P9 N% w" W- M& \, X
if ( $a > $b ) {
' k. Z- J3 z! S, m+ N5 F0 Uecho "a 比 b 大" ; . \$ A! e- x7 R2 V) v- \
} elseif ( $a == $b ) {
1 k8 T6 |5 } s) K6 }: N7 \echo "a 等于 b" ; 5 z2 J7 E: S# @
} else { ! S6 l3 q' [5 R7 |% E
echo "a 比 b 小" ; + l6 }3 A; H, x. _8 a
}
V; f* U: Q @: A0 w3 u?> & R: i: c* E, H6 U7 [# s+ i4 N& h
) X6 x: \1 n' y4 C+ c2、for循环就单纯只有一种,没有变化,它的语法如下
# {% m6 j; y+ w# Y7 q" P3 T8 E$ V: @7 M- ?: Q
for (a; b; c) { statement } U2 d: Q" l4 c' b; R& Z
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。5 n+ \+ O4 a* i9 U
下例是用 for 循环写的的例子。 - d, Z5 h9 j6 w$ b+ o+ q
<?php * x* b2 b0 N9 ]5 z$ f6 S' | l
for ( $i = 1 ; $i <= 10 ; $i++ ) { * `3 m; [' U; R7 c/ D1 k
echo "这是第".$i."次循环<br>" ; $ k; s0 k& b$ V2 [
} ! S* U. t, {2 l5 b$ M
?>
* ^1 j& o! w7 A
3 S* V3 |8 x0 ]+ s! o5 u( ~3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。# q" e) n7 s( I: e/ S5 J% W. v; L R
语法如下:$ m' I" M! w6 O% ?8 ~
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
3 P, r1 D! n) L7 b4 ^8 I其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
+ E5 p1 L9 R7 }: l6 \$ d6 H6 b( Q7 y' m! j9 D! m
<?php " G- c1 T5 G$ H5 D' F/ v
switch ( date ( "D" )) { 2 } m# c1 e0 `% K
case "Mon" :
# P) q- c2 j0 u* ^5 `echo "今天星期一" ;
2 J' ^$ ^& N& ]( _ [' nbreak; " P( V! g; a7 m" ]$ ^
case "Tue" :
+ c! V! w& c# e3 d5 ?' e2 K9 V- `echo "今天星期二" ; ( c3 y/ _3 V6 M4 \6 K* P9 b- G
break;
5 p2 q( m4 K3 ?: j/ F2 ]9 m- K% qcase "Wed" : 1 z% s0 M7 ^8 A
echo "今天星期三" ;
% E A6 _8 r+ Z- A0 tbreak; - `6 F' n2 D+ ~6 Z$ ?7 _' G
case "Thu" : - e$ L+ x) d, L8 }4 \7 h4 h3 ~+ r
echo "今天星期四" ; . {/ q8 U- T3 d6 B- g7 G6 @% ]; ?
break;
5 n! R: o# I6 _: T' Ccase "Fri" : ) M: i k2 @( V2 A: Z9 l6 b
echo "今天星期五" ; 5 J* V% C- Z: r# j# N* g
break;
: n$ s4 N6 Q. Ydefault:
; X) v) f6 r! j8 techo "今天放假" ; . G+ n% h H P
break; 5 Z+ [+ P& B( n5 J1 ]* g& Y3 T) V
}
& v" }' D' H% N?>
* D0 ]/ t9 P e4 l这里需要注意的是break;别遗漏了,default,省略是可以的。 N" l9 [% W4 q1 R
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。. ?9 g+ ]; v, {" u0 n
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |