php的流程控制
' I- E/ f& F3 X5 _# k
) r @ C2 m6 r) Q! M& N3 f& l% g$ X* n1、if……else 循环有三种结构+ W$ I% v6 a* e. W: q8 ^- M5 k
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 9 ]0 J# U7 K3 g6 W7 b6 j% [' C9 d
; n8 U+ ^/ |1 `if (a) { statement } 8 s- _$ X- e& X/ l/ V
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
1 L! e: r I! S% s5 t7 A范例:本例省略大括号。
+ @6 d3 j+ X. J
% e1 s [3 l3 l<?php 2 Q/ X# g7 i$ }$ P; o4 O6 X
if ($a==1) echo "我爱php" ; # g1 b5 ~5 ~6 _6 m z2 G. L$ E
?> ( Y$ V: n/ d+ q. N7 c
0 C O' e7 N: ]8 x; V. @这里特别注意的是,判断是否相等是==而不是=。% e& v( v. S) c5 ~! ]
范例:本例的执行部分有三行,不可省略大括号。 ! [# b8 B# t9 c' G$ f: e$ g, \# V
, x# }( V2 Q4 S$ q) i! b
<?php l4 O9 V1 i+ S9 w/ D0 W* H( n/ V4 G
if ($a==1) {
@1 N7 B+ W& i( Yecho "我爱php" ;
1 F2 s Y J+ b4 _4 z& Gecho "<br>" ;
( R w" ` Z. ?$ q, x0 O}
2 R5 W1 u; X2 Z2 o- T( ]) l?>
: H2 ?: _! m$ N7 _9 p- @+ o1 z1 |; ]) u" r6 R9 w5 M( L4 L, Z
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
. c3 o$ m7 B0 F1 r
! ]& Z7 P; T6 E: Z1 r. tif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
( O3 `. e5 [8 |& U' \<?php . Q4 a" M1 ^1 J+ m
if ($a==1) {
$ M: L' l9 |5 x- Yecho "我爱php1"; " Q$ t! w. G9 Z8 v3 b
echo "<br>";
3 C1 f& k) E' s7 [+ b3 @}
: H1 ~9 V8 A$ p% w$ Lelse {+ `# \, Q! O- G7 b2 q; D
echo "我爱php2";; o. N5 o( \) Z8 O- W5 y
echo "<br>"; 7 l7 ^/ i# w( t+ _/ r+ i
}
6 s* N2 N! z; O& t?>
& ?7 K8 {. [% e; ]
) b2 L2 w8 S' g8 z4 m. F5 h第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。+ F9 F: ^( S5 A
直接看下面的例子 - k* p1 ]& b' Z3 K
<?php
2 J( n7 d" L5 C- Y. mif ( $a > $b ) { 7 ?+ X8 D1 i; _5 {
echo "a 比 b 大" ;
7 Q( H2 D& y) U$ ~8 _} elseif ( $a == $b ) { 4 k% r2 ]' {/ A w
echo "a 等于 b" ; 9 d- R' }3 u/ B% a
} else {
; M! u# ]' Y- ]$ cecho "a 比 b 小" ; v9 j5 l7 j( d# `" I
}
7 Z0 r2 u: ?" l( h' y?>
- A- i! a# B9 a1 u
3 ^# u' z" x4 V/ f# U2、for循环就单纯只有一种,没有变化,它的语法如下 9 `/ d: N0 w' `- A
5 t1 \0 @2 Y# p* Wfor (a; b; c) { statement } * `2 |7 p: ^8 K) ?& d1 t+ u
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
+ J$ N% U7 {4 a( _2 c- [" D下例是用 for 循环写的的例子。 ( h6 r1 U( [1 R4 S
<?php " A- L% s1 t2 ^3 y" X2 R4 _7 Y: \
for ( $i = 1 ; $i <= 10 ; $i++ ) { 9 C! |$ F; w9 R' |' o& A
echo "这是第".$i."次循环<br>" ; ! T7 A$ v- x5 Q9 d
}
2 s. d3 I- V3 ^6 m6 b9 D?>
, s, t" n, N$ B1 c' L" U
& O' d0 o: |( G+ n. y9 s- V3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。/ t" a0 F0 q$ l% A5 m
语法如下:
0 q+ Z' t" X/ j+ n5 [. E- f1 Aswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 1 |5 K) c* o# L' a8 W! A
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 8 X4 j% Y1 E4 i, |. I: z
$ V2 e1 b- O- I4 T/ Q/ r8 C2 s+ ?5 E+ Q% E
<?php
! v5 D ^- _! Sswitch ( date ( "D" )) {
8 X1 i a6 C, s8 }case "Mon" :
; K$ A0 c% e) o# Yecho "今天星期一" ; $ M$ h; I1 R9 s' p; R0 r: V
break;
' g, L/ u5 E3 A( b7 Q' O4 Acase "Tue" : , M3 o! T+ O1 l
echo "今天星期二" ;
& c \- N5 N7 m' y$ ^break; + o, \" C+ K. `0 K7 o0 C2 [
case "Wed" :
" _# ?+ b+ N9 wecho "今天星期三" ; 8 {/ x: X6 L7 T8 I1 I9 [
break; ( F$ a* g6 T- G4 V k: l8 b
case "Thu" :
5 |; _; a$ j6 }5 P$ s* I4 Oecho "今天星期四" ;
& o( _, j1 Y; T( {break;
% k6 v# u3 e7 s7 q+ |, W2 j1 N! Zcase "Fri" : 7 S6 f) R6 m9 O1 d3 K
echo "今天星期五" ;
- w, E6 t' m9 y$ q6 [) `; n+ E( Sbreak;
* Q' E9 z+ \, e! L1 xdefault: ) \& {2 k/ Z9 b ^$ a+ ~+ d! ~
echo "今天放假" ;
2 s! g1 y# q. t3 kbreak;
6 b: c+ P n; ~7 H} ( S; r8 V# D; f7 V
?>
. d, W; Q) J! Y这里需要注意的是break;别遗漏了,default,省略是可以的。
3 S1 J3 A& g/ ~# e8 ]8 Q# v很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
1 G* D. a% H% }* D3 I8 }十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |