php的流程控制
. h" f2 ?2 y2 b! t1 H+ Q B- S" C; |, H1 O" q9 K D
1、if……else 循环有三种结构/ S4 R9 e. c( y: a$ h( ~
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: / _9 ]3 V3 }* c
8 F! z! R8 Z& v0 B5 y! C7 ]
if (a) { statement }
/ x2 K! E6 \- r% F% x9 H* p6 [其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
: S9 m8 R* \9 V" Q" \$ p# C范例:本例省略大括号。 + r, {2 y' \/ A$ F+ L8 |+ v
) B1 h: t# H& U% v<?php
- c: `3 i+ A+ Y+ S1 Q! O% u! R- ~9 r9 pif ($a==1) echo "我爱php" ;
4 A% o) k; \0 t* s) d9 P?> 5 y5 `$ H+ S4 E% b# ?0 S
: Z+ k/ R% n* q: ]
这里特别注意的是,判断是否相等是==而不是=。
1 {1 n1 }! i, v: \范例:本例的执行部分有三行,不可省略大括号。
# r6 [' b% ]' r& [& g
+ S0 O3 p) K9 v* N G S7 o6 G+ S& j<?php 6 y B: P% h$ t, S7 i6 Z
if ($a==1) {
5 J. m# _% \7 gecho "我爱php" ;
7 h7 x9 Q5 j8 ?6 ?5 i: h& secho "<br>" ;
2 M# e. k7 l$ R) w" `% ]} 3 o, \4 x( E o) ]3 e0 Q# [/ ?9 J& r
?>
6 ]6 [8 S9 q* x* y% E1 x5 }; d! ?( F. s5 G$ t% U! F
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
! q" J) K* U/ ?, C2 E# ~$ |0 r
& Y* D9 o" _' Nif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 # @" c0 x1 {! y2 U. ~8 S0 z* u
<?php ! |0 \. Y0 t& P$ i4 y ?
if ($a==1) {
% N9 [ S1 b7 h' n1 Hecho "我爱php1"; % Z* ]3 D: y/ p0 ~* M: I
echo "<br>"; z: f2 j Z/ k7 p, A M: N! I: r* R
} , V% C5 M1 G! b% W4 L) q
else {# O7 p4 H1 w8 s9 n$ j
echo "我爱php2";( E/ e- K# \" o) q4 L
echo "<br>";
5 Q d; z* ?, y/ U9 c/ Q}
: Z! }2 Y3 Z' v, m j8 \?> ; Q- m6 P& T% x5 M- z. h; T
- c M$ l4 ^* M
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
" G5 e4 Q. ?5 Z- `" Q/ g直接看下面的例子
) A* n6 d4 @5 E0 c" L<?php
2 ] X0 x1 D1 [' k, a9 [if ( $a > $b ) {
3 h7 j7 B, W5 S4 y. necho "a 比 b 大" ;
3 }+ ~! A! V7 [1 |+ Q} elseif ( $a == $b ) { ; z1 d6 N* f4 O
echo "a 等于 b" ;
3 ~* F' h) a) [$ D# V5 b3 j} else {
( F' I! K/ h( J( Becho "a 比 b 小" ;
! W' I0 d4 h; K1 y/ | r( y# d}
: F; N! b# A0 R9 k2 Y3 v' Q B) Y! P" t?> - q4 F" Y) x4 q$ h% o# ^
1 C: x( X6 C+ L5 o6 b2、for循环就单纯只有一种,没有变化,它的语法如下
- @6 Z6 U/ z8 j% \9 m" a+ g) F5 |" p( I1 L6 X
for (a; b; c) { statement } 0 Y7 A) e$ x# q2 p. N
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
" b1 F" b+ E) [9 J下例是用 for 循环写的的例子。
% K+ u! D- x5 V. a8 x' x<?php 5 n. e/ o. Q) W7 h' G
for ( $i = 1 ; $i <= 10 ; $i++ ) {
, s9 L# O4 ]! F: U6 d. h6 Y& }0 Fecho "这是第".$i."次循环<br>" ;
* P* G* Z" s8 Y+ Q} * z5 T6 D# A% N- G6 R, f
?> ) Y9 D/ O( l: n. r5 a0 s
0 h$ h i4 N8 u. f$ _
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
& m% n8 h6 A0 Z: n- {. d语法如下:' P% R2 \1 V% S8 D
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
8 f' a/ s" P6 \其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ( L' W; P' a. q
$ d& i, m( }! U1 Z: o" r8 w
<?php g, R6 k2 E9 x
switch ( date ( "D" )) {
7 X L% R3 e$ W: w2 `' m1 `case "Mon" :
. E9 ` O- Z# g7 R) E- p. kecho "今天星期一" ; 7 H1 a( j" t4 E9 t$ H2 n7 h
break; % Y3 Q$ ^7 j' A( i1 K2 b
case "Tue" : . s; Y$ i7 {0 p' h! L
echo "今天星期二" ; ' [5 v/ P. T) O* p: s
break;
( \4 c: ?: z: q8 N6 e9 Tcase "Wed" : ! Q) P: W6 ]; c0 _* ]
echo "今天星期三" ; ' @; o) N# L5 Y
break;
8 d0 e2 P. @6 v5 _case "Thu" : ) d6 E, e4 }4 i! o1 a
echo "今天星期四" ;
& I k M; G2 g' Q3 R, ~) jbreak;
9 C. L2 P( | Z, B* Q. m3 [' s% ~case "Fri" : : X% u% I8 @* |0 {
echo "今天星期五" ; & ]( z; g9 C7 q7 W5 i
break; 0 Y+ p# X! x( a* A4 U6 t
default: ; @2 _6 J/ m7 U9 e$ h* L% R
echo "今天放假" ;
$ k) f5 j1 q, O1 i2 kbreak; 8 d* H1 g! y6 m0 N8 ?6 z9 C
}
P8 H4 r* q& j8 `?> / G5 c# C' L. w( m* N9 w, _
这里需要注意的是break;别遗漏了,default,省略是可以的。( g- ]8 R6 Z4 U, `% f$ O" G5 O2 j
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。+ u: [! o/ m6 s- ?/ Z
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |