php的流程控制 ) k' ~0 B) B( Y, W* |0 t# V
& \" J4 W5 ~* V, T/ D: c3 K0 E1、if……else 循环有三种结构
4 W' B) k( V9 f' y第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ' X3 ?' ^! h2 z1 Q k* M
) d) S: q3 O( ?2 [9 o+ Z# b) b
if (a) { statement }
5 q! C$ ]2 R- \. c其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。, P0 k8 n" W- N9 V" C
范例:本例省略大括号。 # y$ J) p+ g% ], r
7 N& c. d+ ^, ?4 R0 N
<?php % q* z9 N, ~: }( E
if ($a==1) echo "我爱php" ; ) e( f) `+ `9 E: E8 O8 A
?>
& ]& }9 G0 o7 e- o2 v8 }! Z6 I( T( t
这里特别注意的是,判断是否相等是==而不是=。: k% U, L0 x4 Q- W, C' R4 O6 v
范例:本例的执行部分有三行,不可省略大括号。
1 C4 j6 m! `: ~) R% r0 r! }& d$ z& n' z5 c4 t7 q% K
<?php
, H9 h. v: u4 j+ G8 Z- jif ($a==1) { % K+ M0 `1 u: i' v7 v5 `
echo "我爱php" ;
1 K; }. |$ `- r4 c1 t/ H2 A9 ?$ N4 V1 ~echo "<br>" ; 3 W% P4 N6 ]1 F/ r
} 6 g: m* o# t) b1 u1 t. ?- \
?> 2 z. a3 c5 {- C! Y; d
1 @9 J& V8 H) {+ a, O& l" E
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: . N0 Z* |0 W. K \9 W/ v
5 i I7 A, o( |. tif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
4 t& v# w1 N0 I5 p; l) V<?php
) H. s# w6 E% A( Wif ($a==1) {
. Y: ?( e/ h( H8 Y4 C$ C- R2 Xecho "我爱php1"; 8 q3 P& j* G, m# @( R6 l7 r
echo "<br>";
' o/ m% I- Q, F; ]6 v} ! j# a5 u- J4 g; i* c
else {
, ]* ~! |* z' b" `( C3 ]- Decho "我爱php2";
$ f9 @) @4 N+ H" h. R0 P0 B; F/ U+ R) oecho "<br>"; 8 G, J- @5 H2 b5 [$ ~
}
7 l+ ]. u- y# R5 K?> % I/ [4 Z3 N/ ^3 z! X9 S' L
1 h# G6 l7 x4 c4 A3 a! x# H! q第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
8 J) ] _- R8 _" i7 s直接看下面的例子 , A8 _) |' O7 S. j/ z
<?php
( @, N7 i1 u3 r2 Vif ( $a > $b ) {
+ l L" [1 W' W, Oecho "a 比 b 大" ;
8 M4 u; ]% ]1 f' d5 A} elseif ( $a == $b ) {
- Y! y' y% f3 B" eecho "a 等于 b" ; ; u# h$ Q! b! M/ Q4 m% H0 l. {
} else { S- l# y$ ^: G
echo "a 比 b 小" ;
% b2 n+ _( @; B3 f8 W# x$ F4 Z} : Q1 x, v) f& R
?>
( m' V% `. q: b
4 m3 g" f( b: U6 H; T: j' \2、for循环就单纯只有一种,没有变化,它的语法如下 1 \* R0 R0 R! b, _" R+ z
0 L5 B1 w' c5 |) A7 |
for (a; b; c) { statement } , M7 s& @8 }5 B
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
5 X* ]# _7 Z0 ^4 T3 N+ c+ |; U下例是用 for 循环写的的例子。
7 u* g( U: C8 c<?php
) Q9 V" v) U# ?0 f, z# @for ( $i = 1 ; $i <= 10 ; $i++ ) { / C/ K o3 c+ s
echo "这是第".$i."次循环<br>" ; 5 h6 ]6 F. {. G& m3 W
} - g; h5 j) E( W; C$ M
?>
( D5 T L4 q* Q' _9 M/ I/ A6 s9 K# L& `- [, e/ K
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。5 E+ R% x+ z1 b0 d5 C8 S# w ~
语法如下:
! n; @, k# g4 Eswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 4 P: c2 c: r: g4 O
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 . C% m! Y% k- s. K( w9 h
7 P5 g' D% X5 c& J# X- W5 @
<?php
: M- i- u S# }: Rswitch ( date ( "D" )) {
! K( r( C' Q: D) |: T I4 Y! v! t u* Scase "Mon" :
5 _# S6 E6 C7 qecho "今天星期一" ;
5 L( D$ G8 N2 M( obreak; # G2 I9 E% Q) o S2 s; K
case "Tue" :
' A& j) i; D1 A' I8 Lecho "今天星期二" ; 2 q4 D c' |) h& A- }/ c6 B
break; 0 \- t1 [( |( H" p. l+ j" P7 h, F
case "Wed" : & b) T* L) U7 z: {8 S
echo "今天星期三" ; / H0 k/ x" _$ n; N+ S1 y/ q
break;
! Y' l% l ]& \case "Thu" : % n* p$ Q6 ?# K
echo "今天星期四" ; / H' P( ]6 i' N. l) J t& ?5 Y4 d
break;
, R9 z9 P" I. D8 m# Ccase "Fri" :
, v# l- O* M7 o$ U/ i% @echo "今天星期五" ;
, ~0 m* V: {5 bbreak;
* H" }+ _; m# X+ Vdefault: " b( b7 N1 u* A5 F$ V
echo "今天放假" ; # r2 M2 G+ s3 J/ _
break; ! y$ U, o0 I7 {+ I
}
/ y0 k7 C" v' L6 s?> . ?$ H4 A7 G7 u# M `7 G
这里需要注意的是break;别遗漏了,default,省略是可以的。8 e8 Y' j. e s- F. Z# H
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
- y) J: r, ?) E: j/ p十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |