php的流程控制
$ [# \$ j/ Q* w4 l; }$ {+ r2 A
1、if……else 循环有三种结构
3 Y2 V' g) S: J7 G! N6 e7 w第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: + N; N5 ~; h1 E t5 M: Y1 w
: V9 K3 u$ v6 ~% ]if (a) { statement }
3 q* b. S% j2 N, V. r其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
: h& O# x: C) i范例:本例省略大括号。
+ V# B+ t1 j8 S8 j4 x7 T v9 m7 {8 R1 C) X2 r# r
<?php
; W- f$ V. ]( ?2 D8 K7 J! O1 Y& bif ($a==1) echo "我爱php" ;
a; `( B* W+ G! q) ~+ E/ N7 L?>
4 C/ _! Z$ i$ g' O7 v( m3 v3 }
: g8 N- `& x- Y/ n H这里特别注意的是,判断是否相等是==而不是=。5 ?- B) z& E; Q9 f8 {
范例:本例的执行部分有三行,不可省略大括号。
+ u5 C/ d7 \5 W+ _
5 a4 B* C0 v" R5 ?; j, A<?php # b) `& D; i4 c! e
if ($a==1) { % O, M/ g( h$ F3 C* o/ R& U
echo "我爱php" ;
/ s. W) g( y, i3 Techo "<br>" ; ; G! O; F! ]3 c
}
/ [; K& V0 ` o. D& g. }# D' M?>
. u5 O2 X1 k3 U U' M2 u( r! s) P2 v. H! ]# z L
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: " H2 I4 i+ }) ^2 K {* m- {/ Z# K
5 Z0 q2 i$ Q: D3 F. [6 i* U5 a
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 8 l2 }% \& Y8 A1 L
<?php
% j) o/ i, q) J; c/ K+ c) D& Hif ($a==1) {
% U' ~" P' ^% q9 T: i" techo "我爱php1";
! @. I ~. n ?7 ~echo "<br>";# x ? ?: {* I
} : e# s3 K: Z. r) G; L: v
else {8 L- J/ u) O( Y
echo "我爱php2";
3 W- _+ ?. @' ~4 yecho "<br>";
0 @0 i w) u( a' P} 6 ] w _! K0 b8 c* H4 q; i
?> 2 q. Y C0 K. D) |- B
0 a ^0 G" k1 r第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。+ P3 h; ?2 v8 @. e! I
直接看下面的例子 * Q0 N$ R$ C% Z4 q2 m9 J' f
<?php ) r. A V0 q3 P
if ( $a > $b ) { . B* ^: W( w# n# C& |8 q
echo "a 比 b 大" ; 8 W. f9 A( G. H9 a* i: R9 w
} elseif ( $a == $b ) {
; \' K4 t: Z. V; q4 G7 j ]# }echo "a 等于 b" ; E! b4 H' X; {* k
} else {
$ c) y H2 v3 l, A) Recho "a 比 b 小" ;
1 h* x! p: E' a* O" g} $ l7 m- j0 x+ |1 `) r
?>
% U% `; O) i* W; o' G2 d- B; j: n% J6 |9 j6 u" h- n
2、for循环就单纯只有一种,没有变化,它的语法如下
' v+ t8 x) V: n& q1 ?8 n' C4 E9 g# T9 _5 g) W7 c, N5 t
for (a; b; c) { statement } 4 A( v2 r& }# V# Z- o
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
- K# G, A& S' Y/ {# P下例是用 for 循环写的的例子。
6 }/ ^) `+ G, P7 N<?php
/ U. L! Y6 M& C1 H) {4 i9 R5 ?2 U$ Vfor ( $i = 1 ; $i <= 10 ; $i++ ) { ) l$ h6 m1 l6 q8 a5 Y$ ?
echo "这是第".$i."次循环<br>" ;
2 L% \' d5 Q, ?8 n) n} : P# l3 _) |/ K2 w3 ]
?> - _, T; @! n; E p
/ g$ W. }5 p! l3 j. u$ q- f
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。/ \1 O5 w- r3 F$ p
语法如下:
5 Q( M) Y4 H6 m7 k5 h1 x, P; _switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
- x2 z4 y+ r) d6 `2 e7 t其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
+ D! @3 P) ^* ~: D" ]1 e* ~# f$ O) R/ }) z
<?php
3 P0 `6 b6 m0 U& R# |- rswitch ( date ( "D" )) { ' N; \" z8 S( e* l$ Y
case "Mon" : ! f$ {3 E- i* G3 I) }
echo "今天星期一" ;
! y" b* v9 P0 U2 |5 w+ U) y0 F) xbreak; $ w- b3 A" m6 b- l
case "Tue" : + H* k) f/ N$ E7 V% b2 \! M/ d
echo "今天星期二" ;
+ D) U: g* E4 d8 g) u" g0 P8 Kbreak;
+ n% E6 L! o. N y3 W# pcase "Wed" : 1 c- [0 W6 s; x/ b& M& C
echo "今天星期三" ; . ?1 ` c) p" |1 y. ^6 s
break;
/ u: P" g5 g- {+ Z9 O$ a/ vcase "Thu" :
# C& D8 n: M8 N8 O( X5 Recho "今天星期四" ; & A1 I( ~4 G! G8 `9 N
break; ) O! q6 r! T; d7 J: z3 z7 H6 _
case "Fri" : 9 d3 y( d3 v7 q/ ^* h5 ^: ~
echo "今天星期五" ; 0 I+ I% ^7 o# w, ?, W$ M
break; ( \+ h3 }, K! n" ]; f
default:
+ ]% r! R) w' Iecho "今天放假" ;
: I9 R. O+ \$ V4 `0 `2 j( L$ Obreak; . p6 E* ^/ w7 T
} ! o! `0 `7 w' a- x# i
?>
$ x/ F9 @; r, @" ^* n3 `9 Q这里需要注意的是break;别遗漏了,default,省略是可以的。
! ~: o) H! p# n! W: V很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
# E' u- h" U! S4 d十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |