php的流程控制 # M& p" y* P& z3 \: w; d
, y8 d- n) N0 R5 k$ L) E1 {; {6 }1、if……else 循环有三种结构
' V+ p9 `; ` L S第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
I/ K; g5 F9 U
5 _/ |1 V9 h. X3 P7 M. O1 Zif (a) { statement } & T3 \0 p! {( {! q" l% q% P0 @* |
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
* M+ C4 W T+ k2 m范例:本例省略大括号。 % F- q1 {$ v" X8 h6 Q. R/ ^& C9 X
, L2 B. _$ ^" C<?php
4 q8 e: ~ d4 ^) {if ($a==1) echo "我爱php" ; + D) {: X4 L9 _1 J6 q2 Q, l
?> 2 E/ r- U- F8 x4 m/ n9 l
( K& z7 U9 L' x1 M) j( n7 D3 ]
这里特别注意的是,判断是否相等是==而不是=。3 T# T' ^2 } v- F: w3 |
范例:本例的执行部分有三行,不可省略大括号。 + j4 d/ ?8 V. i9 A) }
3 e+ f' z! p0 P! k4 F2 P7 \4 M/ O<?php
7 W- e, t+ r/ V9 B3 c q( m% {if ($a==1) {
, y% I- H- q) b& @echo "我爱php" ; ' Y# Y# E* O7 ~0 Q! L' Q; F
echo "<br>" ; ~4 i( Q1 @0 ]- D* B
}
! n3 w! c" m! ]: [/ v?> $ b, A: ]' ?( e4 c
! T# h8 }) F2 e0 \& Y$ P第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
2 j! a/ S8 z0 j: ^! c3 J
( u y: l+ ?, K6 B3 @( v# Gif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 1 J _1 i! B2 f( o8 B) D
<?php , g( B! Z0 P/ x, M& ~+ x
if ($a==1) {
% Q' \" i+ Z( B4 Y. yecho "我爱php1";
' A& \( l5 q9 d6 jecho "<br>";0 x/ j6 t2 I* @7 o& c
} 1 _" B2 R [3 [& L/ H) e
else {
. P/ _+ P) ~( |" a% Lecho "我爱php2";
6 E+ V2 @) l3 f2 ~echo "<br>"; ' a/ ?9 x$ h6 i5 j+ t
} ; i* y& \* g! e: E+ z A
?>
3 p! A# j" q6 s2 d( Z( J, `% a; E# Q" S' k
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
5 j: l. B* t) x2 m6 K, o直接看下面的例子 9 }; b {0 I# [8 U5 m
<?php " G0 X# N+ Q( u) N9 f& U
if ( $a > $b ) {
8 P# B8 m2 l F2 o- recho "a 比 b 大" ;
7 X: c d( J' T' O g! B* K4 k} elseif ( $a == $b ) {
+ W1 Y# m& J* L6 z' o |& ]echo "a 等于 b" ;
( \% K) i) s7 B8 I$ j9 P: V} else {
: g4 e+ w/ H4 h' W1 cecho "a 比 b 小" ; - Q5 |# A* N9 L0 j
}
2 L7 W% S( i% g3 f8 f) M6 q?>
9 {" p' E0 P$ a% a
+ M% L6 q7 D; A0 s! w k2、for循环就单纯只有一种,没有变化,它的语法如下 ( M4 }6 Z/ B& F" M, [6 o
& p, z8 Z* x: ^1 Q# ~( wfor (a; b; c) { statement }
5 | `6 Z) v3 y& Y$ `2 _其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
* T) s q& u7 _9 V4 v. m下例是用 for 循环写的的例子。
5 }: Y9 Q1 x# r$ Q" P% c<?php
5 P8 c2 r$ B" B0 Hfor ( $i = 1 ; $i <= 10 ; $i++ ) {
% Y9 ?& O( C' T9 |9 ]echo "这是第".$i."次循环<br>" ; . Q6 H+ N! h; l! j9 s
}
4 f3 C2 j5 t+ @; l' o4 O?> , |/ L1 z: v: u' z3 V, f% e! L' x
, S. \1 p. [2 \* X5 C
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
- Q7 X0 m0 B: v' H, g) ]语法如下:
/ X/ \/ Q, c% P, X& _switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
; f$ R" U& I. w& }8 J其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
% Y0 e3 f. f t! j
8 _+ g3 V" d& B" e<?php " k! |+ k$ h2 k+ y( G( k8 D
switch ( date ( "D" )) {
`* v& c, K7 n, B: @ acase "Mon" :
* L5 M& y! Y& @echo "今天星期一" ;
) c5 a: e# K- I9 @& Abreak; % f8 k- z$ s6 K+ O2 [7 ]7 H
case "Tue" :
" n! [; K; m& s7 k4 e. Iecho "今天星期二" ;
; y. A* C7 Z5 H- G: K P9 l8 ^* Zbreak;
9 k9 R8 m1 u! w% P1 {& hcase "Wed" : 3 q, p0 h. [& F, _0 Q7 w; j, e- L
echo "今天星期三" ; & b+ }* w3 k; e2 d" R G; E+ Z) Z
break;
7 r. m8 n5 A6 [9 g6 P X+ Zcase "Thu" : 6 A8 v: a3 w8 |4 o$ C& p
echo "今天星期四" ; * j6 \& \4 c5 m3 r, s U' A
break; ! h# T* b- l# \* R" g1 U
case "Fri" :
# y( W& [% ^5 c ~# Mecho "今天星期五" ;
& p0 w# M" b: u# q% j1 j& ?break; $ l* u, b+ ^/ y* @3 L& f
default:
* q1 P9 g0 J% w+ ~8 Xecho "今天放假" ;
: ^% l8 t, |& w2 vbreak; t" Y M7 I7 z; C
}
6 Q0 G% y& x0 d?> 7 l. k7 X' H( P5 v5 \' A
这里需要注意的是break;别遗漏了,default,省略是可以的。8 C0 l* P, D1 k& s; E
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。0 U2 }/ |: C, \8 M; }* @
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |