php的流程控制
8 H0 c; H" Q7 a/ c( O0 [1 T0 W0 ?1 U- u, Z' \$ p
1、if……else 循环有三种结构
, b5 u, \, g8 ?3 v% B第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
4 l& G: o1 Z, Z! b3 g. }% D( `2 G5 A1 e* k
if (a) { statement }
$ A e' W4 e, Y# H0 o其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。4 {+ Z) r5 u2 n; s/ O
范例:本例省略大括号。 ) x' S4 S8 g2 @6 L% r+ T: A. ]
; }0 l8 V x6 N4 ~<?php
! {' Z( U* u/ R0 h3 h6 P# eif ($a==1) echo "我爱php" ; , w) E+ @+ F- [$ J$ N
?> 1 v5 E$ F' S) u e% m. f
# H: x! }# Z- u$ f+ E
这里特别注意的是,判断是否相等是==而不是=。
! _$ u% Y; R6 c4 Z' E范例:本例的执行部分有三行,不可省略大括号。
0 W& {6 }) i! W. S% L% S( k8 r( Z6 `0 g0 c* {" R+ ~+ q
<?php ' K* j. X7 o! n+ }8 L) `& b0 {) x
if ($a==1) {
) p, c- m, e( Jecho "我爱php" ;
$ L8 i4 R# H. U) _7 a/ H& recho "<br>" ;
# A7 X$ L$ H: k) F9 w& l: H} 8 K. F! ]% D2 b2 e3 y
?> ! C) @* L& w7 [# g, L/ O
9 ^, u @+ A1 c# Q. j O
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
. z. B6 ]) F. D3 C# F# d
' H. C- m5 i& _1 l/ h' jif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
) `% O# G" B. i4 D7 p- M<?php
( F- `" a/ O0 K( m$ c4 ]5 Nif ($a==1) { & v4 o& C! }# O7 Y
echo "我爱php1"; ' _3 R) m% C* g* A* q
echo "<br>";2 a7 Z) X" A/ G% \% v. g; B
} * ^# W& y' U/ h5 u1 h
else {
& A, A# g# |7 ?* F0 t; jecho "我爱php2";1 I. h* r: z% |+ w& e
echo "<br>"; $ z/ D$ U c3 y% l! m
} ( G+ H. U8 I. j4 F& u ^
?> & }) [* K, L# \2 r% u# \) }
5 d( z' o- ]6 O3 H9 K第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
7 d+ X5 ]+ B% i) j9 w直接看下面的例子
" s/ u' u/ m$ Z @8 D<?php 4 p. ?3 p3 v: f8 R
if ( $a > $b ) {
, i$ _% _ J# T- @5 |9 J- necho "a 比 b 大" ;
- P$ A* S" Q1 N: F} elseif ( $a == $b ) {
7 }. a$ W1 g) ` D: R$ Techo "a 等于 b" ; $ v0 K% n( Q8 d- t" Z
} else { - r# ^* b/ c8 G5 n$ V0 }3 s
echo "a 比 b 小" ;
. |( n" F _. r, F}
6 S" T- b" y% G# |' N?> % V W2 r& E1 A Q q. q) d
3 m) v4 q! B2 p5 F: D4 b7 D/ {& q2、for循环就单纯只有一种,没有变化,它的语法如下
5 A) C) t! c' M: t0 A6 D+ s2 |; W9 [, I* t* r( n
for (a; b; c) { statement } 3 O ^7 y. L0 f
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
2 J0 q' w+ o, e7 f5 f* F下例是用 for 循环写的的例子。 & Y, {, D' \2 v6 ^6 U
<?php
! [$ a- A H2 Z# f, Z" W7 vfor ( $i = 1 ; $i <= 10 ; $i++ ) {
( B4 X' F0 f( iecho "这是第".$i."次循环<br>" ;
. \ J& a& B5 x% S+ k3 P4 T} * `% _) Z% H, |2 T+ I: i7 y
?>
3 W" d0 O4 Y: k9 V* b
, p# x' ?9 y' a0 d8 S y3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
( a( ?8 y4 O2 Z, D& a G' f语法如下:; b2 x% O L# W0 t# p; s
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } , a4 ^5 X% g* s( e
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 , \5 q8 r. T1 j; X+ V" Z
+ E" H1 o! V8 c: t$ v9 V. G5 S& f
<?php 3 g( l8 N* W1 V$ X- R, n( P1 h1 Q
switch ( date ( "D" )) {
3 o! H3 H1 v& W0 }3 Gcase "Mon" :
3 y1 ~# x! o- V- mecho "今天星期一" ; 0 B2 ]" i/ i4 v
break; # k% {3 j0 e o4 {( e$ s
case "Tue" : 8 u, H# y4 v) E: ^3 }% o) P
echo "今天星期二" ; " r- A! f/ O' d/ a q5 _
break; , L1 J% i1 g7 o I) @: _+ q
case "Wed" :
3 f' I) v6 M k& w4 Hecho "今天星期三" ;
4 j9 [8 U1 n4 H: ]* k; a1 [break;
0 N1 {% a, `% \/ J& p$ ]case "Thu" : 1 @+ c1 U+ B0 A; D
echo "今天星期四" ;
( o( N+ {2 g# ?' I, K/ `break;
" a k2 S; J/ V, }+ ecase "Fri" : . |( J( C( X n% k
echo "今天星期五" ;
% J) g, F8 v9 @$ ~& V9 c3 t Jbreak;
0 k7 M2 `) L6 {. h9 ydefault:
6 g y; W. Z- w! }! t& H' p }echo "今天放假" ; g9 D# D e1 T( J, {
break;
- w" o8 f+ e1 ^' D3 D} % [% y5 f7 K e& d6 h
?>
8 s& e3 x9 z2 P7 A这里需要注意的是break;别遗漏了,default,省略是可以的。8 S% @. `" N8 q" K P
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
" t, ?6 R# f+ P( n1 b十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |