php的流程控制 : {$ w/ U+ q: s/ M
6 {% v, H0 j7 }( n* h! w' Z( C
1、if……else 循环有三种结构
" U+ z$ _! j- \8 W5 a第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: * ?/ Q: R G3 G% ~- h
* v; W& P: L. A5 b2 r0 e1 ?' R
if (a) { statement }
: n$ N8 d! ~7 ?4 t* i6 i1 S其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。: Q; b# ~; I+ |0 ]3 Y
范例:本例省略大括号。 7 ]5 ^' b; W) Y
. W/ ?1 |) s2 F* A6 H5 u% y
<?php
3 r& y/ p. S4 f+ Tif ($a==1) echo "我爱php" ; g. r3 u; o0 R; w" o$ K- Q
?>
9 x# B% E; _4 @- F. B/ ~: U( l) |: L1 u5 b T, e
这里特别注意的是,判断是否相等是==而不是=。
$ m5 M- a. P, K9 E/ f) N$ j: V6 B范例:本例的执行部分有三行,不可省略大括号。
9 G1 V# j+ n' v6 x9 D" I5 C# @9 W- C/ ^. ~. N* i
<?php
' D* b4 S6 J @% J2 R/ cif ($a==1) {
* n5 y4 F, T* H1 I5 I9 }echo "我爱php" ; + E- V6 i: ^/ l0 i5 o
echo "<br>" ; ; K+ T& ?3 ]0 c" W
}
l1 g1 P- `/ w' B1 G0 s6 c, [?>
0 x5 C9 u8 @; I) E, l, @4 ^' ~8 m2 ^% @3 d. b& N+ E% i) t9 L! V
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: " l$ z( ?8 e# ~0 d" L
# ?# j, ^1 X% S- q) \: {
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
! P, h. h6 j4 G9 a4 _<?php 0 j& E2 J- v2 h7 C& Y6 {
if ($a==1) { # s8 a* ?, @9 w. O- i
echo "我爱php1";
+ C, @' E: x& X! t; u, |: ~echo "<br>";5 b1 h- H, ? C' _
} - M) F5 D& M/ Y! d7 C2 a& v
else {
) A# {' j7 B7 \; X, E, G$ [echo "我爱php2";; A- c3 K- s5 R" H9 n$ N0 O: H
echo "<br>";
+ B5 O( J1 ^ y$ {; L1 Z' [, o}
, i& M1 E0 A' A2 J) `0 E! \8 F?>
4 o/ M: W! Y$ I) I& Z* k
4 y$ o1 W8 k* q" ?7 v第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
1 ?4 `& s) t2 }5 Z* H直接看下面的例子 , C+ w& r+ k4 Z0 o8 ~0 K
<?php
$ K( z- I. g' e" s# b2 Nif ( $a > $b ) {
- l# g, I0 O# g4 _" } {echo "a 比 b 大" ; , w0 K- p8 c/ x$ f& i# l
} elseif ( $a == $b ) {
9 F; }7 M6 S9 U; D/ c, I$ D3 t. {" qecho "a 等于 b" ; ' P4 d# h$ u3 ]& W% s. T. y* q5 l
} else { * q/ M# w, F; _) ` y& k
echo "a 比 b 小" ;
- R1 j+ ^: R' k7 K; \9 W}
( e0 b; e: b! U5 t. ?0 o2 c?>
" [& T- r- r1 _* ]
% E3 b+ m o! l2 q2、for循环就单纯只有一种,没有变化,它的语法如下
+ A" S' Y# J5 C9 c! S) B& s) k' `4 v q& N, H7 i8 s
for (a; b; c) { statement } 7 l' s7 [% T( u9 K: C' Y9 @
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
9 M4 w! x% f1 v5 i: [0 `' T1 ^下例是用 for 循环写的的例子。 \4 o4 H8 k% t" E- ]8 O
<?php
( _% T" _8 J( h7 m: ufor ( $i = 1 ; $i <= 10 ; $i++ ) {
( Q7 ~* M! R' Y( h% E5 R* |echo "这是第".$i."次循环<br>" ; 5 B6 V% d6 W( m5 j
}
9 \- r: y6 h- g1 w" Q5 T+ {' x?> 4 f0 a" v" T% J- B# R5 D. C- G3 ^
- [+ M( ^3 o. o6 ]/ T3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。5 ^ h% r; q! c/ y/ {% [: z d
语法如下:; K( \; f& I6 D( l) Y* t: c7 c& `
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } % Z. d& t. U$ e0 [
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 8 t! ?3 S# `# Y0 v
& ^4 p0 O# @! ?3 g, _1 ~5 _
<?php
0 j4 h* I* ?" O1 j: f0 U7 G' E+ r3 {switch ( date ( "D" )) {
0 H8 V8 r2 z) _% G" D5 {6 ycase "Mon" : & t* h( w6 t1 N
echo "今天星期一" ; % z- C, Y4 O4 O2 S
break; % D) o& u: E Q$ u0 N9 s
case "Tue" : ' [; `: \, ?1 v! G
echo "今天星期二" ;
2 {& l/ `/ i; |" ?; ?0 @break;
4 B2 Y) }2 [# Z/ \6 g7 r+ Bcase "Wed" : D' e/ K/ W: N' v; }* ^; h2 V
echo "今天星期三" ; & m3 {0 s& c7 @ Y0 E5 k5 m. N
break; 9 s8 I- k! q9 x! @4 Z. G: [
case "Thu" : 0 W( h; N9 P0 F6 b
echo "今天星期四" ; + n, [. S& Z H) M7 k9 X/ {
break; ' j1 f, C: I! B
case "Fri" : / n: }7 d$ |5 b2 t1 i
echo "今天星期五" ;
2 K+ W' x% M( m$ O: d5 X- h8 gbreak;
: G; U" g; S# A' c& P+ {default: 6 @1 ^. V5 k$ H ]) v4 S; Z0 N4 r
echo "今天放假" ; ; j2 J' B+ p. s7 C4 V# h
break;
5 }0 Y. u& |. Y: D s}
" k% U) n0 u# z. ^?> " q# M' z4 A; f( Z3 y2 F! V1 E
这里需要注意的是break;别遗漏了,default,省略是可以的。
1 K5 ~- h0 q4 z3 p. c* E很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。$ w! U2 p: H0 d- y' F$ R" J
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |