php的流程控制
. k8 v( J/ a8 S' {/ F$ _" l7 t3 m& O5 Z8 `+ [% [
1、if……else 循环有三种结构
- J. \; `/ N# W第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 5 ~' r, V* n7 ^& t1 Z% k0 T' |1 `
4 `( ?- b( T* S% p# `) eif (a) { statement } $ K; k; Z/ ?3 R0 c
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
+ ~! \: C. E$ y范例:本例省略大括号。 5 u& H' I1 r9 N- `* y
- v" x% O% K8 B. l1 I7 `7 G* @<?php $ d) a. c) t5 m+ n
if ($a==1) echo "我爱php" ; 5 I5 g7 @: w9 B; g P t( w
?>
9 X# X T6 f& k; v: s6 D0 T! w; Q# r
4 D* K, E# }; u. j' B* G- `3 N" y这里特别注意的是,判断是否相等是==而不是=。6 G) Y, s9 m& V+ X
范例:本例的执行部分有三行,不可省略大括号。 6 c& B6 e+ @8 P/ q1 f, |& \& D
' _: j" I+ o9 L8 T4 c E: Z- i: A
<?php
3 e: W' K; Y5 l* mif ($a==1) {
% c- w, V* g. H. A4 d4 }echo "我爱php" ; " g& M0 `% k6 V! n: L
echo "<br>" ; 0 R: R$ z/ F4 T; N* X9 `7 x
} 7 o4 Q! E# p+ D" D$ O) B& a& s
?> 5 o# `, C4 O: j' Y# Q( r: D" _" g9 Z
[5 s3 ? {5 Y, b) Q Z第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
# }. _( W# I+ B' m, G+ ~; {
S2 I [$ ~4 e5 Kif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 $ X! c6 _$ ~4 M" M! |
<?php ; Q' |! z1 \; Q9 B" _7 ?; {
if ($a==1) {
/ Y8 C* P( c/ b# zecho "我爱php1";
8 W8 I- ?. k5 d- N$ d/ hecho "<br>";$ U- l- s+ `- P8 h, Y+ A
} ! H& d1 x& X6 I6 u |
else {) }, n4 `/ ~1 f0 w# ]* p* S
echo "我爱php2";
5 Q% [: A6 u* g2 Aecho "<br>";
0 `: ^. |+ y' n9 X, f; s/ t( q}
! d4 G, s; v+ B9 k7 x0 ]. a C?>
) u5 b: ]/ a. Q, D) ]3 w# v4 J# s2 |* ]/ C7 o7 Q6 M- V) I: Y" v
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。. o: h9 x8 p! v2 @
直接看下面的例子
- i7 U/ e& |3 |! _4 x6 B<?php
8 {# l f+ m8 U! g! W. @. T' g: \if ( $a > $b ) { J: ^ e5 Q g* E2 x+ H9 s
echo "a 比 b 大" ;
: _9 X0 }9 \4 N- Y' B} elseif ( $a == $b ) { J* ^/ G2 O- J
echo "a 等于 b" ;
; U+ U* @+ A0 L6 H- n7 Z} else {
2 H& Y7 p: I0 a( zecho "a 比 b 小" ;
8 V/ {3 @' F z} & R- h/ p9 F: k: }3 l
?>
1 D+ B6 k) p0 W, W5 x$ K: L: f( N2 N
2、for循环就单纯只有一种,没有变化,它的语法如下
0 |4 M% c/ N8 U ~3 F" i; Q
$ Y$ d" l: m) @: W# {: yfor (a; b; c) { statement }
: P% e- b8 ~1 ^ k其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。/ ~. w5 G0 p% X, | L; D
下例是用 for 循环写的的例子。
2 B# Y2 ^% M9 R# U1 ^& [2 V<?php 8 J) S: ~/ m. P' X# ?$ Q( R
for ( $i = 1 ; $i <= 10 ; $i++ ) {
4 Y4 f- t! o- @. p+ @1 {echo "这是第".$i."次循环<br>" ; & k" Y8 |3 P. h8 a/ R" ^# V
}
1 U; a$ V4 n) f+ h# \?> 9 ~% Y0 I8 t( a* B: q
& A- ]" f5 d+ f6 | ^3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
. y0 U h: f. O7 z( ^! k& u& X) o语法如下:! M* X* H3 P9 k& I
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } / o( M8 ?. h$ p
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
" C: c9 ~* |! u5 U9 r
% K' s5 p% ^! w$ X/ m% a0 R0 W<?php h$ \* ^( y+ q+ [9 _) D
switch ( date ( "D" )) { 6 P0 P2 U. b0 s8 V6 L S; D
case "Mon" :
! S* ^) f/ r6 J. ^echo "今天星期一" ;
( j( c& B' G+ T2 t0 Y z ?break;
, \! e- |1 I, u7 s gcase "Tue" :
6 c6 O6 G0 B0 s+ O% [6 }; D, cecho "今天星期二" ;
: [# C5 a- n" W* Y" jbreak; ' L3 x# d, C$ m) P6 r& I
case "Wed" :
8 U( q9 a& y- w! Necho "今天星期三" ;
1 m$ \- n6 X- j8 Xbreak; 9 Y+ u# p. S8 L4 o
case "Thu" : 7 P3 p4 r5 Z5 c S1 a
echo "今天星期四" ; ) b5 Z5 I0 L S
break; 7 G) C6 A7 \2 T$ Q% |) x+ R4 @/ \
case "Fri" : - f: P9 b# {, w) f2 k7 n0 [
echo "今天星期五" ; ; j4 l' N. I9 R# [
break;
" f$ }% T( U: Y1 H3 jdefault: ) s# t y7 ?" Q' r) w+ P2 h& ?
echo "今天放假" ;
/ Y/ Y9 R8 v9 g. F$ W+ b$ i9 b$ R( ]break;
& J, K) u- Y1 B E; `% X! Q& n}
0 C$ w! \$ @8 _7 v?> 0 P8 H7 x7 H6 }1 E+ C
这里需要注意的是break;别遗漏了,default,省略是可以的。
5 ]1 c/ C% l+ `很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
" @" H8 D, k2 H- A; a1 V- d十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |