php的流程控制 ' p; |/ E4 k2 q* C$ k
: U* l0 [- I7 t* {2 ~) y# T( W9 c
1、if……else 循环有三种结构4 J5 D3 q$ h5 h% ^! F
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ; C7 l/ t3 ]! x$ I" e* A
2 Y. r! X5 j0 F9 ~ [) E
if (a) { statement }
3 l6 Q2 M C" r3 i& ^其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
* Y, Z/ F/ [+ n, o' }6 d范例:本例省略大括号。
& N2 a5 d. j; d1 H' @$ }
; z+ u/ ?# y; Y<?php
u& K9 M) G9 ^ d' n5 Eif ($a==1) echo "我爱php" ;
: D- z2 I+ E- B?>
9 H W2 j3 e" [, j B* ^+ l. R" O
( L; x! s0 ?+ t7 y$ G这里特别注意的是,判断是否相等是==而不是=。) y" x4 H4 w# e. J
范例:本例的执行部分有三行,不可省略大括号。
3 k- `8 l& {( Y# h/ e1 }& V& O; V; y
<?php , @" ~0 J4 }9 ~. B9 p
if ($a==1) {
8 @4 a6 w: y; r: |/ gecho "我爱php" ; " P2 }6 K$ Y3 F
echo "<br>" ; ) F3 R9 K7 w& Z# W' \
}
, w% ~8 K/ W: @1 \; K% g?>
# K2 {" i) v# t/ O9 Y6 [- |! u* i( Z
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
8 b6 b# y" D. s. d0 U
+ t* b5 Q" C, l4 b- e, k. Cif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 . ~4 t- t6 ~, {$ Y4 q+ }
<?php
! Z, X# D$ N Tif ($a==1) {
9 R1 P4 U# B8 B9 n* p) N) uecho "我爱php1";
5 j4 I- _. _0 E" ~& {: B3 Secho "<br>";, R3 |: `% A G9 s" E a1 b3 h
} 0 s7 x" g9 j0 a
else {: P; b F9 h$ S7 E" p4 y
echo "我爱php2";# D0 Q* `' \. e6 k/ z
echo "<br>";
4 e% k" |8 m M. N% P! a" h: J} . w) J" H# X/ V
?>
3 Q% K. b* G1 s
( d- D7 x s. w4 b第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
6 K* {6 F' P6 e; j" v' d: Y) y直接看下面的例子 $ M6 l S9 [( b( @2 \
<?php ; E; }# z* j! z
if ( $a > $b ) {
2 u5 A- V1 ]: Q( Q7 w$ j' {, `echo "a 比 b 大" ;
% t* l, M5 z7 y} elseif ( $a == $b ) { . i5 r) I# F3 R! Z
echo "a 等于 b" ; 5 |3 g' \6 B4 l5 j1 n9 u
} else { . \" A6 D4 }' O& ^; u
echo "a 比 b 小" ;
- n' ~" f& I2 K/ S/ a}
: `1 F% n4 w0 i8 c6 H+ z% s?>
; p% v$ Y/ y1 \7 [' F" j8 T) E/ K+ V7 F8 r @4 g- U8 D9 u6 P
2、for循环就单纯只有一种,没有变化,它的语法如下 ; R7 Y; Z! _) z5 ?! O% i
9 X% K& i* E$ K) Rfor (a; b; c) { statement }
: n0 x$ a. `5 `% f' f, c3 @* g其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
+ _7 o% \7 Y* W7 J: r* D8 w下例是用 for 循环写的的例子。
& B* Z. {. k/ p+ L5 k5 d<?php
( z, n& }+ @6 i G; W% ~) ]for ( $i = 1 ; $i <= 10 ; $i++ ) { 9 `- t' Q+ _8 _4 [! x. L
echo "这是第".$i."次循环<br>" ; 5 e4 f$ @5 z7 j3 ^8 o
} $ W: z, e& k t. c& u$ i
?> ' @: W. e W( k! c+ a
: ?$ H* R% n; F5 Q) L% p
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。+ N; P! i: d. ]2 l
语法如下:
1 C! r' J+ f- K V% ?2 q, Zswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
2 F s9 Q0 _2 c9 C( I a其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
$ u. l8 S9 b* |7 s I
0 o. ]5 y! t0 ?+ R<?php
: z/ p' T9 C8 |& ?$ y4 T4 Tswitch ( date ( "D" )) { ' u2 c! v+ j( o* b4 @" o1 V
case "Mon" : l' _0 W. e( H/ x. g! f" R, x
echo "今天星期一" ; 5 n0 R9 \2 I; C+ a4 e1 V7 j& e- m
break; / A- }( u/ B, H! f: U* c
case "Tue" :
0 c# h# I+ a: i- ?& Q- G3 Recho "今天星期二" ; ' U+ l" {% w n6 R0 w7 j) a
break; 0 ]' M' A, ^7 [, K* L8 B
case "Wed" :
( }/ y$ }- D7 i; W& I. A$ secho "今天星期三" ;
" m- U f f+ y- b$ R+ I7 d0 Xbreak; / r$ v& T7 R" _6 r: \
case "Thu" : 7 v- \3 }3 e" \
echo "今天星期四" ; 6 |- P* W$ d7 N+ x0 k
break;
) A- U% {3 N9 }case "Fri" : - v% t- }- p; A
echo "今天星期五" ; + V3 n: r! M; C* ?/ ^
break;
4 x1 _0 N0 A- e! Z: ?& N& C0 Rdefault: ( Z; m, W7 q4 T# {* |
echo "今天放假" ; 3 o1 d1 W5 V8 _7 d0 i% l6 l
break;
7 k) t' z7 w; v' Z, K$ q/ f} . O# x7 a1 I: A% X
?>
1 p8 n' u4 k' m6 ^4 J这里需要注意的是break;别遗漏了,default,省略是可以的。8 u g( D, q0 f9 u' j
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
& E% g- _+ ?. G4 B! f% }: s十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |