php的流程控制
$ P* \) F! t3 y/ G7 O1 h, G6 h# |& r* X
1、if……else 循环有三种结构0 K/ S4 q/ H4 o1 ]# ^4 c( T1 p6 V
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
E* o) r. }/ q8 V$ Z1 d
* u' H& S2 U8 n* Uif (a) { statement }
/ \; L) ?9 v( g8 z其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
' I: s! \6 V) x/ z0 N范例:本例省略大括号。 ' O1 m) O2 o3 O( t2 [2 l& }
$ M' _* i: Y, n1 M, F1 G/ @<?php : k+ `, K- m' I3 [
if ($a==1) echo "我爱php" ; 9 [% }9 ^% x7 M' @
?>
2 A$ r5 a) x' K C5 \+ Q% y% m& f6 d' y5 Z
这里特别注意的是,判断是否相等是==而不是=。9 h5 y7 P1 F! H2 L5 O6 L9 a
范例:本例的执行部分有三行,不可省略大括号。 - ^/ e+ \' C# N. o" o4 E
+ n1 B8 b. S5 q% I+ }' m6 O<?php
# d8 m" ] `8 h* u7 p; b6 Xif ($a==1) { " A0 a/ [, y3 }
echo "我爱php" ; 0 t3 Z' ?; I- V; ?6 T; S
echo "<br>" ; {* r% |8 a5 V- }0 h. `2 D5 n% B
}
4 B/ r5 H# W4 a% _?> 7 ?# {2 c1 t. e+ @
4 @7 [% N/ o3 K第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
/ p p. \* C! X& l3 T3 u, N1 ]3 N! e8 ]2 z! k9 c4 o2 Q
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
2 Z: m& U6 d+ a; p, w' p<?php
* ]6 ~ f: I4 K" b+ f/ {, i- d9 I) Nif ($a==1) { 8 w1 x; b6 p: l8 X
echo "我爱php1";
$ Z; f9 s7 d A' @echo "<br>";. D7 `3 Z$ |9 Q: o& |8 j* J
} " \& ?" w6 o7 ^5 e d$ s' o+ }) ]8 ^
else {
! V A1 v' X4 V9 W) uecho "我爱php2";" D% s, ?+ I" S' J3 g3 h: {6 P* Y
echo "<br>"; ( K5 f; v0 p4 G5 Q5 @/ n' j% B q0 Y: Z
} ) b5 }7 c4 l+ J1 B, ]2 }
?>
6 P+ s( y4 y& y. `* B7 h% d4 ^2 o: }" p- M
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。! w# n4 W4 {2 T0 s7 C* @
直接看下面的例子 / K7 @9 ^7 T0 `3 ?; Z
<?php - O* H- }( Z! }% a/ _
if ( $a > $b ) {
3 M$ R8 H5 ~; r! Necho "a 比 b 大" ; ! n! ]2 M: G( W
} elseif ( $a == $b ) {
- H& }9 {4 F" y- G9 a- Gecho "a 等于 b" ; 1 p0 ~! a6 p5 p9 p! O" f1 z
} else { ; r0 l. l/ y1 ]* B* Y) p0 t
echo "a 比 b 小" ; ) y* l% ^5 s( A1 `2 r0 ~) C5 {
} # J8 x4 S0 @& L6 e
?> - p5 {: c6 D) V5 Q" Y. r
8 S+ ~: n8 ~+ F$ x2、for循环就单纯只有一种,没有变化,它的语法如下
; X* r3 C7 M) @4 P6 _' j: {; e2 R r7 ]
for (a; b; c) { statement }
8 ]8 {# i/ H/ M2 H0 }2 S/ h, q! {其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
2 B2 \- A$ {+ ]' ~; H3 C# d" L* X6 O/ ]% O下例是用 for 循环写的的例子。 * J3 `: ]# L6 J
<?php / s5 ^; |& c) o6 s6 b0 L" C
for ( $i = 1 ; $i <= 10 ; $i++ ) {
2 M& O. f7 Z5 k$ Aecho "这是第".$i."次循环<br>" ; 2 T" I7 R- }. b6 _
}
H* e; R/ f( G& ~?>
( c( g9 c. n2 J8 j7 s- @8 S5 U. b6 O1 ^0 b) q
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。* s0 D9 {+ u" F, L
语法如下:
7 l& e& z" q4 sswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
! T5 v6 T' ~( S2 p4 C其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 6 ~! Z- K$ [; {" f2 {$ B
: H1 [8 i; l" b<?php 9 D" S$ ?* ?0 y! r# f
switch ( date ( "D" )) {
6 E: s* O) q" W2 L& A2 hcase "Mon" : # }1 _: k8 f+ L, k Y
echo "今天星期一" ; ; H! o- ^ i& _; l
break;
% S1 j0 [9 M/ x/ a- d, xcase "Tue" :
1 B/ h s" F3 D! B$ h: Z: [echo "今天星期二" ; 6 ^$ f! `; l+ v7 W1 S+ a
break; * S0 W' @9 q! I4 X: D0 \
case "Wed" : ' }8 o) c4 _( c
echo "今天星期三" ;
/ m/ V/ ?/ N. Gbreak; $ D+ v3 W+ d$ g( R- ~! D
case "Thu" :
1 {. O9 b3 `! b; N& \+ zecho "今天星期四" ;
0 `) z- R$ D) J5 @, P+ Rbreak; ; _# D1 Y+ X8 a6 K
case "Fri" : - q4 U* W* \- n* l1 ?5 H
echo "今天星期五" ; * N) m# f$ J& g5 T; o8 f
break;
4 U5 f2 \9 Q) ^% h# v( Vdefault: * W, U' Y. p# P$ [# ?% y
echo "今天放假" ; ( n* u. J1 X2 K" L1 I
break;
$ r2 Z! Y9 F. p}
K E+ B4 k4 W& [$ y2 X?>
* Y; ^0 n6 Z5 n8 |; X& o这里需要注意的是break;别遗漏了,default,省略是可以的。
, i. b+ C7 |, p9 C* i# L很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
3 A4 s4 R2 @* w" M十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |