php的流程控制
; x& `& q8 \' W4 _
" v3 }1 R! J. x9 [9 }( O+ w1、if……else 循环有三种结构
# Y0 z$ H; K- R- Y+ W第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
, A2 z& A( V& J c1 ~% \2 K7 \8 N ~3 n
if (a) { statement }
j, W, `5 b! G4 o+ G. a, a其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。2 q& `- `1 p7 K
范例:本例省略大括号。 * D v7 ]" h+ b0 E+ l
4 v, W0 C9 z( t! Z/ r
<?php
7 n v/ J6 q+ z) yif ($a==1) echo "我爱php" ;
1 k) C+ _4 }, M- y8 p?> 6 S% ?- w$ w, U+ W5 m4 L
1 e- b: |3 \! k- U6 w; v这里特别注意的是,判断是否相等是==而不是=。" C, v8 {/ R" G( H0 H" p* Y) H" K
范例:本例的执行部分有三行,不可省略大括号。
& O/ n- H- }& K
7 W5 O5 d8 u/ _. m H( v9 d' ^' l<?php
8 b; X ?" y" p5 Hif ($a==1) {
" V ~- E8 u5 _* Vecho "我爱php" ; 5 Z3 x" S5 k+ Y5 X7 B+ S" |9 l
echo "<br>" ; + n% ]' ]9 g% L# l$ b% v, i3 Q
}
0 x3 p8 n6 u" N/ t2 b# _?> + ]+ l: W. V- e% Z1 k
) [- K- y q$ I+ S3 X4 l# T
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
, H- H; j9 F5 C4 K. Q7 ]) M; e" l
8 v! U3 f" c& i& w, O. z3 pif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 # q# k' s* @* h
<?php
" t; j* F( a; v* {0 a0 h7 eif ($a==1) { : J6 e. b; @# h: r
echo "我爱php1"; ' _; _0 x$ c1 ^7 G+ o( ^0 z
echo "<br>";
( b( c7 J. D$ a+ w8 [9 P8 N. @}
( A* E. C+ U6 \; G% @else {
" u' W x7 x. i C9 `3 z6 N- v, cecho "我爱php2";
$ [5 T* q# _7 J; y* L$ K) Qecho "<br>";
8 U* _* `, E6 w- O}
. o6 \! F3 U. m) ]3 K?> 0 h3 _8 w( S$ ]0 g' Y% ~2 }1 i4 K
, V) r+ G0 W% B, i* J
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。! F9 R; z0 j/ ? J/ Y9 m+ j& E
直接看下面的例子 % ~7 h# I6 Y8 |6 `, R7 {$ X
<?php : Z( l+ H! H: \2 X8 b8 N
if ( $a > $b ) {
* }. Q3 O" k/ V/ T0 Gecho "a 比 b 大" ;
2 r/ y8 }* m0 a} elseif ( $a == $b ) {
, f3 {% u, g J% }* h: M7 Eecho "a 等于 b" ; 0 h! e! A8 h& n
} else { 8 `2 s( A4 q `# _! m+ n
echo "a 比 b 小" ;
2 ^" \' c9 G$ O0 e! t3 K} ! z0 A+ y$ S0 M: l
?>
* E2 [0 N: L/ D- t- ]7 ]( B$ U: \ N ?1 a
2、for循环就单纯只有一种,没有变化,它的语法如下
/ y; f) X! p+ [# P. ~$ R; ]5 S6 |& u6 o
for (a; b; c) { statement } 7 e2 x: D# H8 `& V* i' ~
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
$ r1 |0 Y$ H% j" K0 D B- i+ L下例是用 for 循环写的的例子。
4 N. x, e8 \$ e<?php
* F6 S6 ]8 m: s( ^for ( $i = 1 ; $i <= 10 ; $i++ ) {
1 B" N. T2 n: I8 Jecho "这是第".$i."次循环<br>" ;
4 k& Y; z2 J; i$ j6 s. Z3 H8 Y}
$ `- P5 Z' N/ v1 N1 D8 a?> ( V9 f8 `1 ], z
4 j! V4 E$ _" R3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
* s# }+ j) C) R3 \7 l% F2 w语法如下:3 d, c. ~1 r. X" P5 A
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
7 h& i: h2 n2 B. t8 \* U其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 : ?1 O# M% B7 y
" b% S, ^. P, n8 u1 l" k9 a
<?php , O- l5 d$ U0 Y" }; X0 p+ J2 t
switch ( date ( "D" )) { 8 z0 E; ]7 y# c# c8 p* i
case "Mon" : ( o7 q" t( @& N/ w* G
echo "今天星期一" ;
- w+ h. h( z! H9 \* Jbreak; ! G- O) q: m8 ^1 N% E" n
case "Tue" :
, K$ k- O- k. S& ]6 H" c) Z/ @echo "今天星期二" ;
3 o; i1 D9 g( h2 m. E; E8 g$ hbreak; , N: [ a) K1 V( n
case "Wed" : % j2 z' T& Q2 K2 J1 Q) b
echo "今天星期三" ; ! u: n6 }5 u- d i" _* y# d0 M3 t
break; # Q* s4 g/ Z E0 i# y _) j
case "Thu" : 5 H; m- a) C! P
echo "今天星期四" ; + c y+ E, O# F
break;
( v% f, j3 B- c4 f0 V) Xcase "Fri" : 9 ?% } m7 I. b: Z
echo "今天星期五" ; 5 F1 v6 v# H- A
break; / a* t8 f: S5 c6 h9 V" M6 {8 d* j
default: " }& {# u/ V( i* \9 y) j- D
echo "今天放假" ; 9 E2 B7 {; j2 [% u S7 z
break; 8 i B1 ]9 N* ^6 A
} * u8 U9 B& o6 Y
?> " N3 Q6 F& W* {, {
这里需要注意的是break;别遗漏了,default,省略是可以的。. y" [" j, I$ n6 B
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
" m1 O7 J: @ }7 [十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |