php的流程控制 9 R2 e( c7 g+ n$ I3 ] S( U( P. B
$ u& r* T* E) Y: Q# L$ s2 U. H5 f1、if……else 循环有三种结构 b2 D- m3 q( p* o5 j
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
( U6 Z# A4 k5 A k: U8 v6 x8 ]# Q) V7 B) Q( h
if (a) { statement } 1 }1 m. }7 [4 q7 v4 k. ^0 Q
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。, j" U8 a$ k+ N. ^4 S+ m K
范例:本例省略大括号。
( k3 N/ _5 l* F8 s( @3 @% N# X+ [0 ~/ `! M/ b
<?php
j0 c. u( [/ _- eif ($a==1) echo "我爱php" ; 4 t4 j1 t: k& C! h/ v4 B! ~
?>
: l% L0 q g7 Q7 ^0 [: [: D, N- E6 ]; ?( a
这里特别注意的是,判断是否相等是==而不是=。
4 e: c0 O7 u$ |范例:本例的执行部分有三行,不可省略大括号。 7 V8 i! Z8 i% Q3 N1 k E
" C8 M9 h. d9 E7 n% ?, w4 y9 Z- H
<?php % K* l$ r0 B0 R& V
if ($a==1) { ) c$ R# Y; _# z1 K% y7 R+ N
echo "我爱php" ;
/ m w+ W* N- ^) [echo "<br>" ;
6 _ p" h! ?0 x* O# |} 8 F; z% ]8 l7 v! u8 W
?> : ?" m6 q. n( Q' W
- a; Y9 t$ b9 O. O E) ^' v第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 6 X0 a( v7 a# k7 K$ Q3 k1 _
( k2 q ^5 Q% Wif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 # [- t% _& o z- h6 H# n' e
<?php ^0 P( G+ o6 X" j7 Q3 t8 F% }
if ($a==1) {
" @* h$ ?. h6 E+ b6 M+ i8 Techo "我爱php1"; 7 q+ f8 {5 X* i
echo "<br>";/ {7 x4 U# g$ O" ? n! w7 u
}
: u9 l, C! S( [ aelse {
7 P3 y8 ^3 k& t& h# Vecho "我爱php2";" g ]% }: i; B* a
echo "<br>";
0 J1 h# V* r1 m: R5 ?) ^0 I) z- Q} 4 c+ s# _# c/ F- ?
?> % z: G' c0 s& x5 m
& p& l$ T/ C6 h+ A7 E
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
: Q# A+ r0 c. w2 l直接看下面的例子
* z2 G6 A8 h3 m<?php . t. M, s5 s+ ?7 Z0 E0 @, X9 [# e
if ( $a > $b ) {
7 M. o E$ z* m# j9 S, @4 iecho "a 比 b 大" ;
: h/ e+ r$ m3 {} elseif ( $a == $b ) {
+ ^4 y" [1 j! ~/ \$ recho "a 等于 b" ;
$ y8 F2 P7 T) c! m& v) t/ S} else { " m; w2 r( |' Y5 C. `0 b9 ?( }
echo "a 比 b 小" ; 0 k1 K2 u* X5 T6 n" c# u
} * q5 t5 Z7 S5 ?- u0 x
?>
$ ]6 n" O, \3 G9 D b7 ?) L) s0 Z) P- N; d/ ^1 p* S( Q
2、for循环就单纯只有一种,没有变化,它的语法如下 6 M2 D. M( {5 P) [- \5 t
) K9 E" p/ I/ ~3 {
for (a; b; c) { statement }
& p) Q1 |* m9 K8 S( S其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。2 E& g% q: a/ M5 y
下例是用 for 循环写的的例子。
( \+ d9 T; r8 G: ^9 R. |( _<?php
- u% [0 c' F! q. e) Nfor ( $i = 1 ; $i <= 10 ; $i++ ) {
7 V* @ \5 [+ eecho "这是第".$i."次循环<br>" ;
3 W8 `6 b4 y7 Q, ]& @" o) o} 4 l! ~4 ]+ s7 L+ ^
?> ( H& W" Q+ T8 s0 S
, R6 b3 U9 G) d3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。# N" I5 r* _6 \
语法如下:
c _& V5 h% ~' b# Q) N7 G5 Mswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 3 p" ]8 q! d! W* [
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 , ]' r& _' O) F+ X! i7 W, D8 t
1 v! A# z" D8 v \- C# Y
<?php
+ k0 ^& k: a i' x# Oswitch ( date ( "D" )) {
J. H P* P6 b! B9 a+ Ecase "Mon" : ' N* e' C' M# g" G
echo "今天星期一" ; / ?5 q3 e! e! N
break; 3 a# ?' k& F: Y- n
case "Tue" : ' _1 U" ^5 y- P6 b9 \! C
echo "今天星期二" ; 0 a" v+ Q) R8 B1 z
break;
3 W4 m) O6 o. M; Dcase "Wed" : $ U m) d$ b0 x7 S
echo "今天星期三" ; 9 U' ^6 R7 p$ v" y: K* ]8 m/ q$ U
break;
& z. o2 z8 q" V. }3 y/ g6 Kcase "Thu" : 6 `, [2 y& Q. s: a6 Y
echo "今天星期四" ;
; ^& m( t, }: G9 @! mbreak;
, N, l4 _+ M( Q E; _2 Acase "Fri" : 9 |7 Q7 A' \# b" n& K- S5 _6 s
echo "今天星期五" ; / H5 E* U: t7 z- \* _
break; . b1 I1 t. X; x
default: 6 c+ }' K+ [$ C2 [( x7 L
echo "今天放假" ; # a" e8 c- f6 D5 O
break;
; ^ Q/ l c( z/ Q3 M& s* ^}
0 N* z) w |' s& k; \, B' j3 h?> : g- ^- a2 L \$ z0 Y7 A
这里需要注意的是break;别遗漏了,default,省略是可以的。- Q$ o- r$ `7 P. m( N5 i. J
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
- ^. q/ t( N" {: d6 ~* z% Z十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |