php的流程控制
& i, D1 A4 M+ W& f1 q2 C3 X. ~7 N7 N& f
1、if……else 循环有三种结构5 T5 y; V8 \1 ^, P' V: P- v" y# r
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
6 Q( O0 p8 U) o+ H8 X; Q2 O6 }) j
2 o) b: Y0 d6 H: s% bif (a) { statement } 5 Y8 `; b, @( Z& M7 c
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
( g: T, f h8 h ]1 t范例:本例省略大括号。
- R2 m& Z7 O2 Z3 ]
6 B3 a( \. `' h1 o2 O0 W<?php
* a) \) k+ r( \( k( mif ($a==1) echo "我爱php" ; n9 p; ^+ x; ]2 W
?>
: U. i2 R& M) k! q* a7 |; ^$ v8 h$ g6 b# c
这里特别注意的是,判断是否相等是==而不是=。/ o }$ h4 a8 T% W; U
范例:本例的执行部分有三行,不可省略大括号。 : |0 D- o. F+ c. ]. n
- [. l1 c& }" H6 b5 \. f
<?php 3 ]3 l3 y& [2 w9 r% p [8 Z
if ($a==1) { ' I8 E& {2 E6 I/ x8 q) [
echo "我爱php" ; ' e0 d7 l& s/ y$ B$ A
echo "<br>" ; 0 `1 k2 L2 c' x' n$ }: t ~0 r# ^( }
} , T# r" P0 h- S4 k
?>
" _8 o5 @4 y: x* ]) {7 n1 U
! q! I s5 q" L' r& c! m6 @" E; m, K第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
$ K7 o2 j7 G% w3 d; j' ]% _: E' T4 _ `( l: _# D
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
; b# l. D) ^/ o+ _! p- G d9 v<?php
3 g y* W" ]! h7 E) K5 Hif ($a==1) {
$ K3 {. D/ M: G9 [5 hecho "我爱php1"; i+ y: A$ A9 c# Y6 H+ U
echo "<br>";$ ^. ^ @: I8 p: G4 ? E
} 0 O0 V2 J3 R! N2 r
else {8 T2 R3 M2 }. n/ K; k) I# f3 w
echo "我爱php2";
0 t: H' n% B; @4 P& ]echo "<br>"; 1 t' c% ]5 A5 j& I; N
}
v" L6 `- K7 w: c% a, f% d, u% B( P?>
8 @$ V" m. m2 m3 J8 x Y" z$ g, Y- Q% \9 V8 Y0 N- s
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。5 U, @& N4 |5 v; l! F# @
直接看下面的例子
# V+ d, E3 r( b0 s; x<?php
$ c6 d8 n7 _! \% q0 k# j; v# Cif ( $a > $b ) { - e4 k8 ]4 I$ w, }1 b. D) W
echo "a 比 b 大" ;
9 @, L" d3 ] K( E% K# y} elseif ( $a == $b ) { ! h- Y% C- e: e! g; N& L
echo "a 等于 b" ;
, E9 v0 W+ V2 D1 }) X8 k} else {
7 _ A- [% q( N7 wecho "a 比 b 小" ; ; |! d9 T, r1 c
}
. `5 B+ G5 x7 ^2 E' i?> ! N4 B# v- r5 l
3 \/ X. v* A1 c* d/ |2、for循环就单纯只有一种,没有变化,它的语法如下 4 N' f% `; _' L( X+ x, a) J
& i6 s3 A7 R7 f2 K- ^
for (a; b; c) { statement } 4 B) Y+ p9 m {9 Y) Y
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
I& m; b! Q- `) c* E下例是用 for 循环写的的例子。 9 k, w, [ ?6 y" q
<?php : t' c# v/ M g2 v
for ( $i = 1 ; $i <= 10 ; $i++ ) {
" U* w1 Y; L* z2 K+ n+ X: c6 N& Kecho "这是第".$i."次循环<br>" ; 4 y% j/ W9 ]0 T: Y
}
! m& O- f u$ M( k- N+ V?> " b; y, j. w3 n) Y$ h5 q
E4 t7 X0 l _( v2 ]
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
9 c2 f+ I& @; M& B语法如下:/ x- d$ k" R; m. K, O" m
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } $ N5 ` t# j3 M" Z9 {5 a
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
# d% b" @9 w2 B- S! u1 l* M3 g9 u8 z
<?php : s( ]) _7 {) ~+ R$ p
switch ( date ( "D" )) { 4 q; ^9 ^" e- H+ w# Z& k
case "Mon" :
, H) g% ]) ~% f$ L/ Mecho "今天星期一" ;
" D' N0 U" S$ F& |% \9 D' @break; 2 B' } P6 [" K
case "Tue" :
6 g% y X' B, G- J+ c' G6 F4 v! aecho "今天星期二" ; : w& v7 M& d# e2 I
break; & a6 B1 I( s$ ~5 `6 X) a" h
case "Wed" : & ]5 Q8 v4 ]: J/ N+ Y* g$ A2 V
echo "今天星期三" ; 6 O& e6 {! W2 i$ e! J' L3 P, X
break;
) z7 f$ n/ |) w& b8 \& |case "Thu" :
5 f) i1 }# h' c4 G6 L! ]) Cecho "今天星期四" ; 5 C. Q( v9 z1 X) o2 ^
break; 1 G/ f2 y/ _+ ^# z0 E
case "Fri" :
9 }! r1 M9 ]* I* I/ _1 [9 lecho "今天星期五" ;
# T; `+ ?. |+ z0 O9 U: `break;
# ~, L! y! W8 X6 w$ g, C7 pdefault:
7 B, d; M! P; L7 Z3 a1 `echo "今天放假" ; 0 K$ f: K- g4 z# z0 h; v
break; 7 z; L+ V" c# L: [* g, e) S
} " G* `4 r! b2 D- K- [8 n$ @
?>
3 p8 Y. T2 s7 i8 Y- Q6 O这里需要注意的是break;别遗漏了,default,省略是可以的。
0 s& m- w" A) D& G6 J很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。4 P8 k7 n- x( M% O' U1 Q
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |