php的流程控制
2 B) Q) S; S/ i( F6 K5 V8 d
8 e1 u3 F! B/ o5 i1、if……else 循环有三种结构
# d+ e+ F. b7 y8 E2 A, f第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 9 l+ N# _$ v1 B; O
5 _0 ~" c' j. oif (a) { statement }
1 i1 I/ l7 J# o其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。' f& ]! A7 p& L5 S9 ?
范例:本例省略大括号。 5 Z( y8 E A5 n' R; r5 o a4 P
% r) L s4 z5 \+ h' M" i4 B
<?php " M: b) C! K6 U& ^8 ^ `' C1 c
if ($a==1) echo "我爱php" ;
4 }0 Y7 f4 J' B i, A?> ; J8 v) J/ C5 A, k$ \4 a) }
* ]$ f7 L7 s; Y, l
这里特别注意的是,判断是否相等是==而不是=。
& r6 {" _% `3 s* l范例:本例的执行部分有三行,不可省略大括号。 5 W g ]9 l& G# q) ^5 r# _, Y/ [
1 {% j' f( t0 \- s
<?php & l p' c/ c5 I
if ($a==1) {
% C- b4 q+ X8 e7 e8 H, ~2 Zecho "我爱php" ; * a9 o7 y$ D% h9 h
echo "<br>" ; . u9 E y5 T/ `6 b
}
3 |* S- Z) o% h: J+ B7 c) p% b?> * U* @6 |+ F7 b8 g
& O" _0 }# a! R: W5 [2 B
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
8 R3 O# g- Q K( Z/ Q! a
$ N% M; T- o- {if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
7 f; l) b$ T9 r3 t4 f. `<?php
3 `9 L; a1 r) m$ C0 m- hif ($a==1) {
3 d$ B- ` `4 W( v: ]echo "我爱php1";
* G9 H( B2 e& zecho "<br>";
3 x2 L* S% L+ H/ J' J1 N} 3 A# n: Z3 x" @. G1 t
else {
1 ]/ o! X& p& ~% |echo "我爱php2";
! F6 F8 C0 m b0 F% L' A" K7 U4 secho "<br>"; # i0 ]8 O5 i: j# b/ h! `, { b
} . c3 j E1 d! X% G- l2 B
?>
, k) S, v3 s" X5 W% H6 a/ Y; t5 K6 \
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。6 f% f: F, l2 ^& q5 ]: g: n! @
直接看下面的例子 6 ?/ n0 V- X' d/ G( l: }, g" F
<?php
5 B9 {* X4 N; n, pif ( $a > $b ) {
) S" K- a* I% ]: j! m4 Iecho "a 比 b 大" ;
, n2 h- P+ F5 X" L& D5 `} elseif ( $a == $b ) { ; n, v; E" J, c7 i9 g% j3 a( _ m
echo "a 等于 b" ; , [. j l0 x2 w; F. W
} else { ; K+ ?3 m, t* J% |1 \1 U/ O# |3 D
echo "a 比 b 小" ; 9 Z! z( v- I& z( P( F
} `: k- f3 [& y# Y
?>
* U" Z; w7 B; Y8 n3 g9 w+ x$ a; u1 f E4 P5 e/ \" A
2、for循环就单纯只有一种,没有变化,它的语法如下 ) E2 X t$ D) b1 H9 _
& ^2 U; v; ?7 j! `for (a; b; c) { statement } : s& i' R. M$ E- d L
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
" W7 j2 _) P8 E: U, I下例是用 for 循环写的的例子。
9 g9 ^' V- D- A5 n5 f. W2 G, R<?php
( Y& N" H; A5 D+ ~7 V+ tfor ( $i = 1 ; $i <= 10 ; $i++ ) { 1 \& D7 s8 z& Q. J. r0 f. e8 [
echo "这是第".$i."次循环<br>" ; ; U7 U4 H* R1 q* ^* W6 z/ @
} ; W/ f0 P- l) b
?>
; O8 m+ N4 S5 o. ?. g9 e5 b& K# _4 J8 b& M* g7 A2 q+ ~5 y
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
6 `" S$ Y5 [0 H' V语法如下:
+ Q# H5 |5 B1 u: l, Iswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
3 W5 q+ r5 y5 P# q0 X: W其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
0 B" i( j9 w3 `, s& \" ^) ^* l- t' y2 N
<?php
Q0 r: l- T0 V5 b9 `! z% b( pswitch ( date ( "D" )) { 2 g% m+ I" i, ]
case "Mon" : ' s6 y0 i0 O: e7 a' z8 `
echo "今天星期一" ;
) t9 W$ y* X+ O- O1 S9 |" Nbreak;
$ ^( m4 @' O, Q$ P O. qcase "Tue" :
/ P+ p. ~( B5 k' o4 C- Eecho "今天星期二" ;
- d8 J1 Y( E; p1 Obreak;
% c. w; }! S8 A- Z. Gcase "Wed" : 5 l& c/ J$ y- h2 f; C" M/ t
echo "今天星期三" ;
0 x! N7 p W& r1 W" Z4 p7 R/ \. dbreak; $ Z4 _# d# s0 Q
case "Thu" : k1 Z+ j( m) p% o/ I u
echo "今天星期四" ; : ?7 ?3 f' L6 _4 |
break; 6 ]7 Z+ ?2 A4 r
case "Fri" : - R/ F5 l( p) m
echo "今天星期五" ; + T. J) B) n2 C2 ^! k \
break;
7 L. }: |* ^8 [ L8 G" f: Kdefault: & w8 n A5 e: }& V) o" b- k* [0 ~0 o
echo "今天放假" ; ' [4 B* ]5 h. E# _$ a
break;
: j0 m+ f% i, q2 L$ s" D: E} " g" V7 [; ^! o; F5 R% t' U
?> 1 d! X4 t4 d; D4 @
这里需要注意的是break;别遗漏了,default,省略是可以的。$ S& S3 H3 T9 x- ^. _, U, n- k
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。, @2 {4 c' u- o7 n! m1 V8 Q2 e
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |