php的流程控制 7 J+ O' W! e% i' `! M1 L
3 z& P4 z* ]; d) x) v/ w1、if……else 循环有三种结构
- b4 A" A4 V4 o6 z第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ! S W& B. J7 E
( H9 O2 ~5 N+ ?5 _ W2 p
if (a) { statement }
- s! c8 p: v5 E其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
$ Y( s; W. v5 T% K8 Z2 R+ O2 F范例:本例省略大括号。
. }. |- i& m" A) Z. J! {3 n% w: Q1 x5 w7 P
<?php 3 n0 o [9 i( Y, ^5 ]5 U# L
if ($a==1) echo "我爱php" ;
5 g$ l" h9 U7 m7 w$ u' n" m7 D# H?>
8 f0 \0 s2 _) j( h8 W: f) }% U5 q1 B5 M$ @6 p: }
这里特别注意的是,判断是否相等是==而不是=。& n9 F, l" j- M& ]2 z
范例:本例的执行部分有三行,不可省略大括号。 : M1 Z* q& a7 `! s
- F' G! m; z3 q9 l3 g<?php
( N* x* U: R; l: V/ d3 z$ |if ($a==1) { 9 c5 U* _$ V; d7 z5 a
echo "我爱php" ;
$ J. N: {1 X, n* e" I: \5 iecho "<br>" ;
5 Z$ s o% p4 a6 s6 X}
# K1 j6 _; G, i2 q( p6 N" A?> ; o6 Y) L& d3 p+ {
& _$ }" _6 R" L" l8 ?
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
5 l7 S8 z8 a1 `8 u3 F: ~6 v R0 S8 g) O+ e4 H& \$ X% z# S* D
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
2 q6 k7 x( G1 q<?php
$ p" U+ X* P% Iif ($a==1) {
) A, J4 A& t7 v/ X! [echo "我爱php1"; # x% c. O/ o5 X$ ^! Q! T! A
echo "<br>";
' X) g$ [' t: U$ ~, Z7 a( |4 O, @! B} $ ~" {& q) i! z4 Y7 K
else {8 |/ X: [$ _0 ~! |; |
echo "我爱php2";! L2 s' D5 F b$ w
echo "<br>"; 6 ~ o/ ]4 S1 J( g& t
}
1 }: [$ ]+ k5 }, l7 {?>
6 r0 Y, } h( d2 a* b) ~
+ V4 c# q2 r) k# G& o4 L. n第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。3 u: N2 x% J* {2 q4 ?
直接看下面的例子
# n5 T+ J0 t- ^2 C) ?<?php 7 Y1 f0 R" p7 s6 a2 C& O0 Q
if ( $a > $b ) {
1 x' f6 E' B+ h4 _, `7 i, w# q. w# yecho "a 比 b 大" ;
6 ~$ s. @* K- P} elseif ( $a == $b ) { ( o9 R# d$ F6 _' J- P
echo "a 等于 b" ;
' g# e! n, i+ `. ]- I- F1 N9 p} else {
2 Q) m; R4 G1 i; x9 e* Eecho "a 比 b 小" ; - f/ Y' r3 e' D9 w P+ p3 c- e0 o0 }
} ; W, C& h# |* `+ X: q
?> ; [0 O; S& _5 Y, B+ I5 t# u
: b' T0 t. G, C1 v) ^: Z2 j3 g2、for循环就单纯只有一种,没有变化,它的语法如下
0 t0 W. l. ^. h* _( L
. @% D t" s" ~: C+ n7 b5 m4 A/ Ffor (a; b; c) { statement }
5 m1 M6 y& o8 G0 y: E其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。) _' N; m2 C2 F& u/ `
下例是用 for 循环写的的例子。 3 i; u) k) o5 R
<?php . j1 W: |$ J7 K0 K
for ( $i = 1 ; $i <= 10 ; $i++ ) { 3 M+ R( i, v' P
echo "这是第".$i."次循环<br>" ;
0 ^( e/ l) x' c6 B7 `- {1 }} 3 P) y0 l6 M6 C' g
?>
( e0 E2 B! n4 e- u- b( R
4 o9 A2 H& Q$ i% d6 x, b: [3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
: F7 c3 {& i: Y$ S) D0 ^$ z语法如下:
( [2 F0 M; K- H: ]5 Mswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } & o6 c9 z& q& `) P* l' x
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
& A- |% d1 @) s$ g2 y& {3 p" X
9 w2 L7 Q' m. t ?<?php - p# C" N7 h" m. @, c; o0 n
switch ( date ( "D" )) { * I/ c$ s' U# h
case "Mon" : . I g6 u0 R2 n; H
echo "今天星期一" ;
* V% D8 ^) G2 x& r8 }- q, Dbreak; " w+ B; I8 K4 s3 `' {
case "Tue" :
6 z3 @( e. m8 n: L1 n' n' Techo "今天星期二" ;
! O. G& P7 {1 cbreak;
4 Z1 B* o* _8 E. ~. B Zcase "Wed" :
# d4 C) h# t- q- y2 Hecho "今天星期三" ;
D! h4 U& ?$ ~8 A$ f& N2 n, lbreak;
; n4 t+ r& O- I# T1 W. _3 p" ccase "Thu" : 7 i$ r6 O# I6 u2 B( Y# z% t6 O3 g Z
echo "今天星期四" ; & f* y2 l Q( l5 v6 Q- R
break; 7 O2 P- d8 d) x+ w& f+ {2 c1 V* E1 ]! p
case "Fri" :
; q+ }" h) ]6 V9 F- Recho "今天星期五" ; , [' w# B2 }( b' B/ r+ W( l/ \( j
break; " y7 b. F4 _! H% @) ~9 M- f! g
default:
* b; G5 _. a- g+ P6 b) Cecho "今天放假" ;
# _+ W8 G0 m- Sbreak;
( ^' I. V! d0 n$ v) S, ]}
x5 \# U$ @! _0 ]! e; [/ k?>
8 T3 z' [' O* l6 B8 q这里需要注意的是break;别遗漏了,default,省略是可以的。
/ o: n5 u0 h- Z5 _7 L$ ^" M很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。! m1 N5 H" j, {
十天学会php之第二天就说到这里,第三天开始说数据库的使用。