php的流程控制
) X3 M' ]9 A( x& M2 U1 _" p4 h
" `$ U6 A* `3 b9 G1、if……else 循环有三种结构
$ f) y) \6 C! b4 F# d第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ' H0 x& |/ g2 _
, j4 j( x. B. N$ r
if (a) { statement } ! b* P0 p& T: Y7 q/ D# p1 g
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
' B* J" G; I1 |0 S: V" P范例:本例省略大括号。
) A9 D8 a2 Z" \ q( O1 c9 t9 r1 `
! v4 l& m n1 \) A7 @<?php
# D' @# Z# A9 p0 `- rif ($a==1) echo "我爱php" ;
% o; G, _: ~+ @7 f. j( _/ [?> 0 a5 V* W+ |, N
. k' N s0 v) |
这里特别注意的是,判断是否相等是==而不是=。' P' d5 Z2 F! H
范例:本例的执行部分有三行,不可省略大括号。
$ `0 O0 ]. p6 J* z$ Z
( M) V5 @2 d! R3 S& R<?php
* K/ ?/ o# j9 k* ^) f5 \0 Eif ($a==1) { $ W a5 `" u u6 d; _3 [
echo "我爱php" ; . X4 @$ L) u, p0 v
echo "<br>" ;
. J& d" h* J6 |} 5 W+ q5 k# K+ f$ L: D! `
?>
$ H. Y, Y m& m* b+ {- j0 P3 ]! F+ O4 b g& o5 i
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
4 Z1 Q2 j8 p. C- T
9 C) q( W4 V" g# q6 Z! _# @if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 3 w" i8 G+ J; M! t# B- [& {0 ^
<?php
% u/ n3 t1 |4 C& P6 x* y cif ($a==1) {
9 c( C% ]% H6 |+ U4 c% s, h1 V% ]7 _3 Wecho "我爱php1"; * z9 m4 a! T) B- ^
echo "<br>";
; g, K* I! B `* Z}
8 m8 Q) s' C t/ C& delse {# P. S/ ?7 G: ]1 s0 T& c5 I0 K
echo "我爱php2";7 `5 P: l7 N9 ~3 _9 `
echo "<br>";
/ a' G4 F+ \ n- l: Z7 E0 j% X6 P& I} ! P$ n# m$ W Z) w5 f
?>
# C# J% J! x0 n& u. ]1 E! r2 h+ M7 k
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。+ W/ Q" g# P- s8 C" X
直接看下面的例子 - {# ]" n- ^) b5 d/ Z) e! a
<?php
* d! P5 C$ `/ ]4 b& J, Bif ( $a > $b ) { * h- w5 \9 s& w0 {" X7 w) S
echo "a 比 b 大" ; & d) ^8 i! y. }! q2 {/ |
} elseif ( $a == $b ) {
# h8 a8 m7 i o( \6 zecho "a 等于 b" ; & Q& N! f% e. Z" t% v
} else {
1 f, n6 M2 S6 secho "a 比 b 小" ;
, U% P5 u% f+ y0 \1 k} : r5 f( h7 c5 h1 p% _( g/ @# ^
?> ; L( Z& W8 `5 I+ C. l( Q0 [; n, J
o& N7 }# Z3 B8 y" G
2、for循环就单纯只有一种,没有变化,它的语法如下
& u, ^/ L1 g6 a2 ?9 z' m' e$ f4 G. g& W
for (a; b; c) { statement } / l. i1 J# D7 _1 p" _9 z
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。8 V9 j, M |" ]
下例是用 for 循环写的的例子。 # A/ x$ A: \9 d' W
<?php
3 E7 {& E# V' c$ p5 f3 T6 zfor ( $i = 1 ; $i <= 10 ; $i++ ) {
# V$ T3 N& F, a4 R9 P o; v d7 secho "这是第".$i."次循环<br>" ; 6 H+ g2 i2 j6 {3 l1 x
} & O! U- n. @* Q; X% z1 J* l1 _/ {
?>
: R/ [8 T7 g* l* ^7 ^% H, t9 T, {9 v- ^! O' f$ `
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。6 P2 r# x- S" H' }; @* d' B
语法如下:% J8 K. K3 p: O9 j8 S
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 8 h$ K6 x: \, E& {
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 " r( R$ @ H8 \) L4 m$ U; I
8 f8 Q p5 ~. r4 k: Y8 S5 V
<?php
3 u) m, Q! G& E1 N; Oswitch ( date ( "D" )) {
3 h: d2 m H* Zcase "Mon" :
) `) ?8 h6 j0 X3 `& uecho "今天星期一" ; ! a0 m S! R% D) Y! J! Z8 W
break;
0 B! |) \* Y4 S, v6 Lcase "Tue" : + B: o1 ?# r; M# O9 Y6 V
echo "今天星期二" ;
# U/ H' N4 g/ U( Ibreak; % |$ ]. s0 x: U! d% e% n5 R, I
case "Wed" : . [0 h% B8 ]6 \; F
echo "今天星期三" ; % Q: x, O5 m+ [7 ?1 y/ I
break;
8 H% ~ y4 k( p) @case "Thu" :
" K$ B2 `7 W& R2 \5 X! @. techo "今天星期四" ;
" q6 S( d! {8 B* vbreak;
' m6 }1 q! r J. a: t0 Kcase "Fri" :
* f6 d" x) ^# N" W4 decho "今天星期五" ;
; d3 O) C E# N; b$ d7 Q) \break; " o6 e/ z7 [8 P( X0 ?4 l0 {1 A o& }
default: * l1 L4 X( g. N% D4 R5 F, j6 F
echo "今天放假" ;
5 {' U# u# C: c. g$ y, I0 abreak;
) ~( W8 y& F9 Z& W, S# \/ x} 5 u8 _: h+ R3 O0 r8 z1 `8 [( m% e
?> * N2 _" c. X; [
这里需要注意的是break;别遗漏了,default,省略是可以的。4 K2 n; G$ Z' T
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
- U5 u% {" A5 J十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |