php的流程控制 8 [8 e3 b9 {: j2 r7 ~# R3 f4 |! z; s% }
4 t( U4 i3 j8 n
1、if……else 循环有三种结构
' c% c0 [: A9 I2 f) v) L) U0 i第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ' U. d3 n( R. p6 A ~
5 d+ x# O) \& D) U3 N
if (a) { statement } 0 L) E0 l) T# ^ y3 r
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
# U" U9 V. X% r, M4 d范例:本例省略大括号。
0 V- \2 R+ k! A9 X, d
! Q" n' z2 K6 ]% z/ S<?php
+ I! q# N/ A1 |/ A6 W5 aif ($a==1) echo "我爱php" ;
' f' `2 a1 q+ |* O! r?>
: v8 R) U5 V0 [ o/ ]/ ?5 k2 S G. j9 Q' w
这里特别注意的是,判断是否相等是==而不是=。
* o' f, m" G: E) |: ]( C* Z范例:本例的执行部分有三行,不可省略大括号。 5 n$ \: X; n5 {( o' }! {
# L; r6 h, v# L# N<?php ) v( W4 a! r" u+ B/ A2 M
if ($a==1) { 0 H5 P- o- V2 H* l2 f$ B# ~: ?
echo "我爱php" ; " |) J( |$ m5 u5 z
echo "<br>" ; ; q$ D: c- g, ]8 w! B1 e$ x. x4 s `( ?
} - g8 J0 y0 z3 C
?>
4 o% F/ n0 D5 Q* C5 J/ V! n6 J' H: e6 Q# {
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 1 ^% x1 G/ g; ~8 c: k, T! U. f
7 d B8 P7 v. N$ ]9 |7 v, l
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
9 Y/ E! B/ _8 m8 a$ }' y- X4 a<?php
/ d0 K: m- v9 z) V, U. H" @0 Dif ($a==1) { u: |6 g& }2 S
echo "我爱php1"; ! p! _ x5 F) s( y4 [
echo "<br>";. d4 |1 h; Q6 ^2 F6 x! [
}
8 `$ \! [: x6 C- }+ u& Felse {+ u u' Q: ?4 m; H2 R* @6 P) E+ [
echo "我爱php2";8 Z& W( ^+ x3 L" B$ A6 m f
echo "<br>";
" e: Q8 q E0 z% E} ! }3 |; O5 E E
?>
2 m2 s2 m: v" J7 d/ g% M: y' J. Y" t) l4 {
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。- u7 P! y4 n- K
直接看下面的例子 ) W+ B1 i( Z3 g. M1 @4 I3 G# X7 l
<?php
* q* j1 n6 u+ v$ }9 a$ aif ( $a > $b ) { ' s. p5 d9 h$ u# Y1 P' b
echo "a 比 b 大" ;
; j: ^# N* M9 Q} elseif ( $a == $b ) { : e/ R) `/ b% |. {6 `. p
echo "a 等于 b" ; 0 c5 t) f3 F, @+ j! d
} else { 4 }4 b6 x- q/ ?# ~6 Q! N# ~
echo "a 比 b 小" ; ' I+ T0 C5 d2 H1 b1 l: w
} 1 P! B2 f. j" F& D' ^3 V) g' h; d
?> : i2 A) M/ f8 g0 Z
( C w) \6 p- A. N& O
2、for循环就单纯只有一种,没有变化,它的语法如下
" s2 o* N2 U W K& V+ ~* Q% U/ ?- z2 O- _! ~+ c2 a% I- Q4 Z
for (a; b; c) { statement }
& ?) V, D% \5 h( I1 a其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
q* {& }4 U# K8 F8 l下例是用 for 循环写的的例子。
* V" l, v/ T. x+ Y1 |% i- P& a<?php
/ A+ n/ m! Z7 Y- h& t* {% q3 o) nfor ( $i = 1 ; $i <= 10 ; $i++ ) { & B2 S& e8 r% u: }
echo "这是第".$i."次循环<br>" ; 4 X' P. k; V, D3 w' T
} # r6 ~& W+ K" x* V0 i: N
?> ; b+ E& ^" c' Y9 S
L% K. v& A. P6 s6 ]
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
9 j& l9 V8 J" L2 X' b7 S( a- E语法如下:
0 i$ z, t, U5 e$ W1 ]8 xswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
9 N! k. c! q1 ^- k/ B其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 9 C3 j# L7 u. P2 P5 p- d1 K
8 b% N( Y6 U- ?) c8 w* c: a* P1 u
<?php 2 [" d' {9 z0 y* m. z9 l
switch ( date ( "D" )) {
( ]( x) e9 H% J. ?) T# E0 icase "Mon" :
) b w$ J: _. K0 d/ W: j7 |5 Pecho "今天星期一" ; ) u' W" b1 }. U5 g3 W8 p8 z
break;
" Z E2 n/ \, v2 @9 A. S; `& Zcase "Tue" :
" z; u' }4 v& y& d; Aecho "今天星期二" ;
8 {0 f" U8 \+ _5 ?' O% | Rbreak; 5 S3 J! I* ^7 w
case "Wed" : 7 ]- M. o: o+ [+ f; g: z
echo "今天星期三" ;
# h# O( W# @$ G! m9 \5 Z8 |break;
) S( l% `6 k% A+ ]6 ^1 q# Z0 ^case "Thu" :
2 s5 R1 n5 t5 P2 techo "今天星期四" ;
4 Z9 e0 j3 q5 Y" k4 K u7 w5 Nbreak;
' u1 J5 z6 W( t# s! K3 {! ccase "Fri" : ; r. x: h" s; S7 h( ?$ J0 t7 Q
echo "今天星期五" ; + V$ E& e7 ?- Y
break; 2 S0 n4 ~$ \) H5 \$ b
default:
2 s4 G5 C* T; |echo "今天放假" ;
4 B2 X' @/ Y% }/ g$ H" q, Hbreak;
) i" w; l+ S- J. Z* W0 C) b2 b0 x} 1 o. ]6 k6 S6 u9 |! P# ~3 l
?> f/ ^( m- H6 d# P
这里需要注意的是break;别遗漏了,default,省略是可以的。( m+ D i. h9 |% [
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。) x. p+ c! B K8 q/ E- D6 w8 \. q$ ~
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |