php的流程控制
! |8 O3 _+ j/ Y8 A1 ^
+ y$ J1 W5 a) O1、if……else 循环有三种结构
& B% V" e8 r7 o; w5 @! p第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: * l& o+ B7 G) e3 Y2 i
9 s3 C }8 E6 Iif (a) { statement } }/ y; i k# ~" F% i) ]& k; M. [; Q
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。% V" x0 H6 ?( x- \
范例:本例省略大括号。 - H3 R, g0 \# n8 a
3 ]; L) \$ l3 }0 c/ M3 L" v! r# j<?php ) e' t% v; A: j4 I0 D
if ($a==1) echo "我爱php" ;
+ c- G& v. T/ D: D% H9 o( `?>
8 d/ \! f, N0 P. P- Y5 }6 R
4 Y7 Z1 U/ z1 l: ]# S: g- H* e这里特别注意的是,判断是否相等是==而不是=。
: u7 {+ H) T- Y3 W+ l0 _范例:本例的执行部分有三行,不可省略大括号。 0 Z" {% p+ }# [7 f7 |
3 B, s. ^+ _9 q# Y, a Z1 S<?php
" c1 u8 v( l+ I& [6 v$ ^if ($a==1) {
8 z# ?& R! h& l* u4 Yecho "我爱php" ;
( V/ e8 H& r4 t+ ]echo "<br>" ; ) x5 e- V6 Q+ z% v k) W0 ?- D
} " U8 |: F& r0 i* t
?> , ]* ?0 f6 F- n# W
6 w% |* M! y- v1 I4 Q8 K第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
2 [! w+ e9 X9 C h# K' l+ d' W9 c8 E- n. N' L5 ^# g
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
7 X( c1 u2 |: \, c<?php ( U# l" b! @/ D5 m! O5 o
if ($a==1) { ( K |; g9 c7 m" f
echo "我爱php1";
! d9 \8 x: ]5 X t! @5 T3 u# V- [echo "<br>";& e6 L& h3 x9 } }9 y
}
) o# _# Z) o1 }3 W8 }" Uelse {
2 K& a/ M4 A- s2 u7 ^+ |& Necho "我爱php2";
& X! u: `: `; P2 Secho "<br>";
" J* _- v! z, }}
$ h, Q: W w# l% y9 G; k?> " [6 m& E, P) _7 e* o& O
$ ?# z" `3 z+ W9 r5 W$ U第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
. t6 R+ J$ {( L2 @' i; z" C% {直接看下面的例子
/ b" a6 u5 ]+ l5 L<?php
% C2 C1 E1 [, E. Y, A4 oif ( $a > $b ) {
# X- L2 p9 b/ c. L, Gecho "a 比 b 大" ;
' L" Q8 j7 k0 d6 U8 z6 F} elseif ( $a == $b ) {
' g5 b7 F# H5 ]+ w# E) ~echo "a 等于 b" ;
- W8 B4 |, s( k# r} else {
6 O+ c r* s9 Aecho "a 比 b 小" ; 9 j' a! T; I) j- p0 A
} ; ~0 w5 x) i& Q+ R/ M& k0 Z
?>
0 @6 W; v9 F; i3 i/ i' L" N8 G0 J7 J. P% ~# F# Z+ a5 J
2、for循环就单纯只有一种,没有变化,它的语法如下
2 }# I& Z; s8 W- E0 p! w9 ~% P/ z$ @8 e) G' a' w+ `0 P1 h
for (a; b; c) { statement } ; V; \8 ? N1 f2 C0 f$ p
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。- c1 ?; i6 H9 ?
下例是用 for 循环写的的例子。
b4 @' `; Y3 S/ e<?php
% ]; D8 M- u1 x; Efor ( $i = 1 ; $i <= 10 ; $i++ ) { % u: B2 g; ~( N3 F9 E: ~
echo "这是第".$i."次循环<br>" ;
) n. }2 i8 A1 Y3 e- e}
9 R* T8 n0 o7 w% ~3 |?> $ V) {/ T, t5 Y) J* l! `2 F4 O3 x
+ g A3 F1 M* s1 X6 B6 w) r: d3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。- N/ B5 n9 t8 f' H. w/ m
语法如下:0 V: f7 h8 w5 {7 n( c; K
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
+ s$ m. d) o7 z7 G# \5 `( e其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 % W- R) g. z* W; ~
$ g! B! a1 e( m+ V# t0 [" M<?php
: |2 }% z) L K. T; C/ X, q- Mswitch ( date ( "D" )) { * ^, [8 H6 l. w3 e, [8 t) L
case "Mon" :
. \( @/ g% l4 K0 z2 ^. f* yecho "今天星期一" ; ' {5 C- @, V( U% A+ R% `5 L$ o
break;
; H+ M( a$ Q" c/ N4 Scase "Tue" : , ? i" p$ G/ k5 y4 V+ I
echo "今天星期二" ; ( Q4 Y p' ], T. p0 Y7 D4 `3 G
break;
# D' k2 y' d$ v, M) m dcase "Wed" : 2 N. E$ n1 z& R' y0 c8 x: Y
echo "今天星期三" ;
3 }* v! }4 f+ d, D. L) N( c) Qbreak; 5 ]- z/ O6 h: ^$ X
case "Thu" :
4 R5 Y1 L# m: H4 j8 p; B- }echo "今天星期四" ;
& V! j, @# E3 M5 Bbreak;
9 L3 H% E. a: X. p; Kcase "Fri" : 7 s1 Z- l+ _; d3 l& x) e
echo "今天星期五" ;
0 m! n% c# ?3 c" }! U$ [6 r e0 Zbreak; ; U7 o" I @+ y; a* k2 T4 \; s x* D
default: ; J1 [) v6 k3 G- k7 B* e' q/ m
echo "今天放假" ; & r: S! [9 F, {7 r) L
break;
% ]( S8 j" ?, e" M' i+ e} 1 X# Y6 c. W3 ?4 K6 Y! d
?>
' b* ~6 D% B. P5 E7 a这里需要注意的是break;别遗漏了,default,省略是可以的。
; B$ |1 g, b& a5 `# R- L很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 m! C3 m& k& A1 ?' e
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |