php的流程控制
& p) E6 `: H! I+ J" W) y! f: W+ @1 J6 ? N! l' X4 _! h! \5 i
1、if……else 循环有三种结构
, a: b4 r# T3 o' [第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ( h, X' ]. U0 @' d0 E/ [4 _
) b# J2 H. t6 |5 O2 H( F+ tif (a) { statement }
" n7 ~# r" P2 z其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
% }4 x5 ]# W# C2 q I范例:本例省略大括号。 . t) _/ F2 O& K- K; ~$ y
' T: m- n; C$ H [/ J<?php
7 G+ J+ N" X' }9 pif ($a==1) echo "我爱php" ; 3 X- ]$ {6 X2 I+ Y( i* S
?>
/ @+ ~. }% L) `! U
/ }6 S9 ?6 u0 j: }! @7 c这里特别注意的是,判断是否相等是==而不是=。
: g3 \- B( c+ M' T4 ]! A范例:本例的执行部分有三行,不可省略大括号。
+ F2 ~) e! e/ U& _' q1 A; d0 h- \
9 i7 {9 |) e. H5 G9 g' N<?php ' L" D2 C/ ?/ f- Z) F
if ($a==1) {
$ p, @$ ]# R7 [: ?8 e: {' Jecho "我爱php" ; 9 y: A5 q7 O( s0 s
echo "<br>" ;
H/ D n# Z$ n: N}
' x# M) t7 @, @7 ~?> / ~' A& N$ ]( s/ ~
$ c' j3 M1 y3 M% L7 W: j第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
/ K( W, H( v/ x1 C+ U' p/ `3 I1 Z" o
; L& v( t$ O7 j% k: K+ C, F' E, oif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
+ s9 o" {6 o {1 Z7 [6 D$ ^* \( I* M<?php ( C C! ~5 H2 q9 d& M
if ($a==1) {
$ y2 e2 I) S* B8 ~ Decho "我爱php1";
& ~0 F1 E- f( Q+ r2 O3 cecho "<br>";' K# A" Q6 @- O$ o
} # A& s1 t; Y) y; y1 c+ \5 m O
else {# n9 Z- E' n- m
echo "我爱php2";! h. p' t7 O3 b: D( K7 C# b
echo "<br>"; , r( ]+ Z& ]. W0 |
} - V: _8 K6 f1 b' u) i, m: B( q7 @/ u
?> + Q. x- ^1 ?; b7 F8 T2 P' G
. i X/ m8 J0 ~; P5 T2 d第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。, X/ f/ N/ j; |. @; e
直接看下面的例子
1 y [ g4 ~( u2 d. t1 K, H+ ~<?php $ z6 n$ _# C- x' B, Q, m( Z
if ( $a > $b ) {
: V% P2 e4 t" |% B2 f! j Y* ?echo "a 比 b 大" ; 6 U- s6 o+ b' @; l* q6 F( I
} elseif ( $a == $b ) {
" ^4 y }+ A: Eecho "a 等于 b" ; 5 ` |& x" m6 O, F* H, n1 R% i \6 @
} else { . [7 B1 ` j {5 F
echo "a 比 b 小" ;
9 R) q) T/ V. x0 P6 B2 v( @3 x}
7 \$ x! X9 E" ^9 s?>
* _4 X5 }3 g/ a/ J' o6 C& G9 Q8 t @ t) V
2、for循环就单纯只有一种,没有变化,它的语法如下 6 w% ]1 e( H& T0 Y v8 G- s
) |5 n4 t9 ~7 |4 W4 P7 x2 {4 zfor (a; b; c) { statement }
7 P/ l/ A4 O$ Z- L$ v: Q1 }其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
0 q. F$ |+ _: L/ r, b下例是用 for 循环写的的例子。
; l& A$ @8 C" [<?php
8 i9 M# V. o# D1 ^) q* C% Bfor ( $i = 1 ; $i <= 10 ; $i++ ) { 3 b- W" [; O, q4 ]# M
echo "这是第".$i."次循环<br>" ;
& K4 w0 c+ k# q" ~9 |} - A- S+ c. d8 v6 m# i0 j9 G9 [
?>
: c- v, d$ m5 ^* H0 X# F/ ]" _; U
1 e. {; B. h& ~2 h3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。. {* n/ ^: e3 T& @/ s
语法如下:
% J# H8 z2 p; ~) N. o" `1 lswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
) c' l+ u& E; _; r其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
4 ]! w, \! \* Z& F3 V
5 i8 U2 g! i# g* G1 f<?php $ O; @- c2 j' p2 E
switch ( date ( "D" )) {
* B6 w, `+ U+ _' p. ?' k& @case "Mon" :
9 t/ ^: ?9 J1 m% _$ `. V. Secho "今天星期一" ; ' ]5 Y F$ K: k+ k
break; ( N% l1 o8 H6 ?
case "Tue" :
% }: @. G9 D: S' ^* t3 z5 \6 ~; |; d% cecho "今天星期二" ;
) i! J: y" h% K: Y. F' nbreak;
8 X' Y( T9 N' S& B* lcase "Wed" : - M9 |$ y3 M( Y) D
echo "今天星期三" ;
/ A" }# r: m |! C, Ybreak;
! Q2 @; Y9 y0 U ?* k* k; Pcase "Thu" : ; Y$ G* R2 n: }/ H
echo "今天星期四" ;
1 f' A9 ^9 E2 @$ D' Zbreak; ( V; I* p- b8 J# h( r$ x
case "Fri" : / n. Z: U: L) m/ m
echo "今天星期五" ; ( G) h& ^) s G& F' ~
break;
5 W3 h$ Q6 x* J3 s0 \: |7 idefault:
' M0 {& @2 R, W. U2 v2 Z7 oecho "今天放假" ; 2 a* l$ z' v0 e5 d7 M1 x; d
break;
! M& }. U, g4 p0 T} 6 _+ V2 A, e1 a! I, O
?>
( }/ c) m% c5 g T4 M4 A" H这里需要注意的是break;别遗漏了,default,省略是可以的。
. Y9 F% a9 Q+ f' ^很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
4 h0 }; }4 ?' Z( v: f: i十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |