php的流程控制
- Z2 `$ K7 a7 O7 j% N1 X: W/ u3 s6 ?+ m; Q6 w( ]* E% \/ E
1、if……else 循环有三种结构
$ I; {* o+ \7 {* K3 {第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: $ B3 W# M/ ?; ?; V4 [) ~
7 J1 Q4 P9 Y) v1 yif (a) { statement } : z+ `9 @$ x& V
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。, }9 [ V+ t) x2 R" y) e
范例:本例省略大括号。
3 s3 Q+ k' C; R' x
6 M) h* D& }- r<?php
; a% g0 P9 u; V9 lif ($a==1) echo "我爱php" ; 6 h A9 _( v- K: C$ b1 E/ L1 E1 S
?>
5 H; k u0 _5 Q0 J
+ G$ B, w* T$ N5 ]( ~这里特别注意的是,判断是否相等是==而不是=。! _! L, A7 k9 f1 A2 V
范例:本例的执行部分有三行,不可省略大括号。
/ _$ ?' n* m' t7 l# M+ q
# l( I' Y3 a! \- e<?php 4 `' u( B2 Y# s0 k9 I! X: D
if ($a==1) {
3 \4 c. w% P: C5 a5 Qecho "我爱php" ; 4 d) B* n6 w. t8 c
echo "<br>" ; 8 ~* r! J: l, \. W8 Z
}
9 O6 L9 A2 h7 `- p?> ' O2 i2 S& [4 Q' U
7 x; ]1 r' p2 a+ f& ?% d) X2 f第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
2 X9 P4 u- `' h: d* n) h) J' ~& U3 s n* \, o
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
5 u1 g( D3 a% r4 H3 ?5 Q7 _, D<?php 9 I# q; N i; Z2 f* I+ T
if ($a==1) { 4 x7 n5 |4 M, V/ v8 ]1 Q- q) T
echo "我爱php1"; 4 y$ o( J+ ]; K4 E4 c C
echo "<br>";
2 S9 K7 `. g+ u4 {# U7 T: k1 K}
. h& {; A! y* Melse {
, }) F7 `1 L9 aecho "我爱php2";5 A0 q( N" Q) ^! x7 L2 v
echo "<br>"; " y. Z6 @9 N( u; {
} 2 w/ i" X3 |8 s1 n \$ _$ h
?> 6 _; v1 A7 W, Q
9 ?4 R: Y- ~! N# q第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
# T! _4 _1 E4 b+ M直接看下面的例子 ! J7 o6 d: X4 k
<?php / C3 f; p6 u' k; B. A8 ?' K
if ( $a > $b ) {
' m1 F" J& F3 a. Zecho "a 比 b 大" ;
4 ^+ f8 _, E- i} elseif ( $a == $b ) {
" _) ~* {- ~- T6 {! @$ \echo "a 等于 b" ; 9 ] m' D* F0 f. x
} else { x: Y3 W) Q/ T
echo "a 比 b 小" ;
2 q* w' P' k. M. S4 c} . Y, | X0 G- x0 r7 V8 `
?>
$ f; v$ n4 v( \
" t" I( Y) I6 J3 m2、for循环就单纯只有一种,没有变化,它的语法如下
4 Y. n# e, @! [% x# z7 O2 E" s, m) L
for (a; b; c) { statement } & X0 R2 C( O; x( a5 _# ]" ^
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
1 t$ ` i9 T$ K) b下例是用 for 循环写的的例子。
4 G% g. r4 v; t- w z8 l<?php % e. c& d' d! @5 P& I1 a- V
for ( $i = 1 ; $i <= 10 ; $i++ ) { . X. s/ l4 r2 r# Z. S6 F1 V6 H; d. W
echo "这是第".$i."次循环<br>" ; * x/ k9 v/ z3 [' o6 ^6 j- G
}
( x, ]4 ?) Z: _6 u1 k8 N4 _?>
& R* s$ Q" ^2 v: W: Z
. E8 b$ H2 ?9 Q0 k/ M# a3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。; ]2 A. t. s1 L! g7 x7 e0 }1 T; D' \6 Q
语法如下:7 U" M$ X& \; \2 p9 ], F
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } - M3 O0 u1 U: L. D* Y9 [2 D: x
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ! R4 [+ f# a8 p4 d: C1 J4 m
" ^1 b4 s4 z1 F4 ^: q9 p, O6 c+ M: D<?php " \ C# Z: n. h; v
switch ( date ( "D" )) {
' r, _$ T% ]0 o4 I8 T# u+ A4 t# Ocase "Mon" :
! J; I1 O" H2 K" K* B0 ~. Fecho "今天星期一" ; - k& j4 q2 P* x: P
break;
; b$ J8 |8 J# Z' ?case "Tue" :
4 S* y4 R$ V4 C" k8 y+ H4 kecho "今天星期二" ;
9 c( n- l6 S, J$ a _& b0 J) Xbreak;
( D# ^; p' [9 m# b& tcase "Wed" :
6 O a" m( [$ k9 e3 f2 mecho "今天星期三" ;
# l- F6 ~) i4 l3 f" T, tbreak;
; B- J6 L8 \( W f* ^% zcase "Thu" : 9 x' ~. T y. V
echo "今天星期四" ;
' T g9 E o* y9 q) Gbreak; 8 L4 E0 h( Y- n$ |5 g
case "Fri" :
- e# Z) j& f* [9 f) a$ Gecho "今天星期五" ; . Y) {+ n( I; f+ X& g( X4 Q; e
break;
~7 g7 J! X8 Y c. pdefault: 8 v" Y8 B' J, j# J* e: j& W
echo "今天放假" ;
3 n8 F& t$ q! y9 D, kbreak;
% [, y" t, i# U2 F9 s} 1 Q8 s {2 ]$ s/ k4 P% u6 j
?>
p& j, s) B6 \7 x7 z( c* ~这里需要注意的是break;别遗漏了,default,省略是可以的。
: h# i; e/ H' Q- k+ [- i5 z很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
- j/ A4 ?) h4 M. _2 d, h8 f十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |