php的流程控制 7 w& b" H- y( G' `" I! [* S
+ u: W C, C+ V% H% X: i0 p1、if……else 循环有三种结构
7 f- D) d$ `- A0 U! Y# B) j$ N* C第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
; x+ K4 M) _- X* g( E2 V
* n/ A9 W/ O2 \if (a) { statement } / n: u F% k |
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
2 N% p7 O2 j) t9 _$ Y范例:本例省略大括号。
" z4 d) s% A4 G$ U6 O% @% d6 [$ H/ @: W1 c6 |
<?php 7 r4 R$ n6 A& p
if ($a==1) echo "我爱php" ; 3 l% i& y" Z, y" j8 J
?> 8 o D. b: u5 `' T4 t9 C
* l$ v( }+ h9 `1 {
这里特别注意的是,判断是否相等是==而不是=。
# p0 z/ x7 q& {范例:本例的执行部分有三行,不可省略大括号。 - J3 g3 v% p! y& l
8 k4 Q6 ]; t+ [3 R4 s! Q
<?php
! z/ ^' c4 e$ }$ Y- [if ($a==1) {
; O3 ]/ D; Q1 X4 c( G$ p+ @echo "我爱php" ;
' z0 R3 O& f) A' a* ?0 J& s6 cecho "<br>" ; 8 ^3 s2 V# m1 y/ P2 _# I
} 2 z' c! E% t# N% H4 o3 g: ^
?>
( t. y7 i7 N) P4 ^
: J* N8 }" `: I- G5 K第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: ( k4 S9 Q6 G0 Z% A
& a0 D; J- b: h jif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
3 T2 q& g0 {. g0 R<?php
3 H* Q& {! `/ T0 Sif ($a==1) {
C' `* O' k2 D( k5 [echo "我爱php1"; # O. b8 z$ }3 b" A* R6 q
echo "<br>";
4 n0 H9 ?# g, q( q* V8 Q}
- b) l! T# ]0 w5 A$ D% ^2 `# felse {8 o4 _7 H" p7 W0 y% R
echo "我爱php2";* Q3 L! u! u/ o: G
echo "<br>"; + u4 Q% H: Z o, n, _1 K' x# E4 ]
}
" c' a: N1 m$ e* }* Y?>
& v9 u5 _+ \% n" p2 J; l9 \$ [# t; R5 y7 d3 |+ q6 l( ]
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。; d- Z0 _; h! H: q. X% q' _
直接看下面的例子
7 i/ g* t, A0 L7 o<?php & Z% {& W2 t) F0 n4 L" s+ \- |& T
if ( $a > $b ) { 8 o' K, _2 G* ^3 s3 F1 {! b
echo "a 比 b 大" ;
1 U" O$ V- N# m* {1 m} elseif ( $a == $b ) { + K; L' S n. ]; W
echo "a 等于 b" ;
) l+ G/ v# q( @0 Q" n1 Q% w} else { ( W* C! a: V5 F2 T& x+ `0 d
echo "a 比 b 小" ; ' _- M h7 g) M5 _1 O& \3 g0 O
}
5 C7 C3 I2 }5 O6 P. H9 \?>
7 k6 I( [/ Y( o
2 ~8 M& y9 A7 U! ^7 m2、for循环就单纯只有一种,没有变化,它的语法如下 1 [& B# P, T0 { P: Y
% M; _+ B& b" ~# ^& u
for (a; b; c) { statement }
* @ Y6 P8 P, d- H0 J% N其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。7 C+ ]4 `! s8 h+ W: z
下例是用 for 循环写的的例子。 0 _& U1 D, j7 T3 K" H0 b" K
<?php " K9 u' A4 @- q! W( j/ Y- E& G
for ( $i = 1 ; $i <= 10 ; $i++ ) { 3 b* |* N4 V8 @* M& Q+ J% q5 }
echo "这是第".$i."次循环<br>" ; ; ?' l" p+ H8 l |7 D8 M# S G
} , p: u3 S! M, D1 ]' u0 U7 ~
?>
$ L6 ^! _2 W& o* @" t8 d9 I- B3 D5 L& x' C: j9 k) G, @
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。, d: B4 H8 a9 N1 y# g, p- D
语法如下:
; X) j' X' L8 ]+ W3 G' Y8 I2 `, o/ \switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } + ?7 ]) ^0 u3 r& M* n
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
?* J! [ j# N4 x. V, H4 g3 G4 [
<?php ) b' A7 d0 J( t/ ?
switch ( date ( "D" )) {
$ z9 Y4 E, K0 J. B& {( C- D0 Rcase "Mon" : $ L) o2 d6 h; }, `$ I, V% i7 ]
echo "今天星期一" ;
5 K3 s+ k7 j9 {% C( G7 nbreak;
1 O. p8 y' Q+ D7 Ocase "Tue" : 8 c8 t: ]% q$ h L" @
echo "今天星期二" ;
5 L u. B6 \& s r& a7 A1 e9 dbreak;
& c6 ]; m+ Q1 T4 Icase "Wed" : : A2 t$ }3 L& @4 H7 |
echo "今天星期三" ;
( s N% b& C/ m8 Ebreak; 8 L- h1 E% F- @' K' }
case "Thu" :
, J5 E1 W3 v) p6 L8 G& c( ?/ C+ jecho "今天星期四" ;
: y3 t- B& f$ L3 A: e" rbreak; , U% O$ ]0 U6 ~+ J
case "Fri" : , g3 h5 F% Z$ K
echo "今天星期五" ; , t- p# ^1 o4 \% W
break;
4 ^% ^% \# H0 g/ Z6 Ydefault:
: ?. _6 q5 A: h4 [9 Fecho "今天放假" ;
- e2 C- r$ w+ q8 ]& y- w& ?break;
: J+ N: Z0 V: F# [8 [}
! J, l. B) M* C' y3 x# b4 V! m?> ; \! n) r6 X9 F: T) p1 K- V
这里需要注意的是break;别遗漏了,default,省略是可以的。
$ b0 ~2 D; b! b" r( i- O0 d1 X- S5 _很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
! {# ~0 t/ }' ~; X十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |