php的流程控制 & o) c+ e; [, T0 V! w! @
! q9 C9 n+ Q7 Y. H7 v
1、if……else 循环有三种结构
% W* y& N/ v1 L1 S; q: U第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: $ n! H9 z* @$ j v
. {% z1 f% A' s5 Oif (a) { statement } % M, f# I8 P$ F8 p
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
, s& p- q: W2 v7 v+ Z0 J$ A: Q范例:本例省略大括号。
3 O7 t# F/ ~' }( e9 @: F/ w
+ M0 l. s' b+ P0 x9 Q% g<?php
6 d4 j1 ]9 }+ E8 N- w* D8 aif ($a==1) echo "我爱php" ; + e0 f3 m8 H- K# {% H% @% J# B
?>
/ S6 r4 I- m2 \) I; J. o' o8 f" J( e' U) |
这里特别注意的是,判断是否相等是==而不是=。$ N/ L( N: [) o8 e$ l
范例:本例的执行部分有三行,不可省略大括号。
( I$ u; o2 n$ x$ v, z" ~ A2 m- F) x' j' L8 P- ~/ t9 D+ d9 [
<?php 0 v1 ] s f" Q* B" |
if ($a==1) {
3 }1 C9 Z+ ?- x" L* x9 X6 k, s% pecho "我爱php" ; + N5 ^8 D5 l$ [; q2 O3 \0 Z) T. d
echo "<br>" ;
1 Z I; j2 T; B3 ^6 x3 O: b0 n}
! }9 V/ g1 a R7 i6 V?> : C" L% T5 s6 L
: X1 [) @4 ~4 v0 E
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 2 u" c( A5 u' t7 `: } H( X; U
% m3 c7 I7 B2 ^3 A4 u
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 ; X: C: i* Q8 b, W: P/ {
<?php / j+ w6 O1 t p: f
if ($a==1) {
, [4 S$ }; H7 ^2 J5 k4 ~9 }0 Cecho "我爱php1";
$ A' l7 N! r7 s1 h" ~- xecho "<br>";+ Y1 g& R% c; W
}
+ p3 k+ u) X ~$ l5 Belse {
' H- S4 R( ^' P+ S( C pecho "我爱php2"; S. l/ X n+ n+ C
echo "<br>";
0 O/ E# I2 q3 b0 M p} % _6 ~, C# {3 e4 {) @
?>
) O; b2 m7 W- U- m6 i" c8 {. l6 r+ n3 [
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。% J8 w3 H0 u/ l2 ~2 R7 Z1 c7 ]
直接看下面的例子 7 B$ g6 X4 Q/ n# O- ^; X. Z
<?php 8 _2 P8 K0 S' }) @: p, C& q
if ( $a > $b ) {
, T u6 D: V& Q+ s5 P( secho "a 比 b 大" ; : q, w0 D( Z! U& y
} elseif ( $a == $b ) {
1 Y* Z* P3 L- mecho "a 等于 b" ;
7 ~" u/ Z& m( \7 l} else {
/ @3 M* z7 W/ ~1 W( D5 D. W8 gecho "a 比 b 小" ; 2 ^( t2 h- n$ i' H/ C
} 1 u* V5 [' X0 B( q+ U7 `7 P" s
?> ' x/ t* S7 Z/ v( Y3 B) S: u
, F8 n4 ~1 k/ g5 C3 E2、for循环就单纯只有一种,没有变化,它的语法如下 ) l% P8 Q, ^6 h2 d
2 l9 w# S- d I4 o, Rfor (a; b; c) { statement }
$ k6 ^1 M4 Y# {% z! e6 _其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
- w, u; M, n/ G( ~2 q下例是用 for 循环写的的例子。
* @! b" t" r1 M+ A5 d<?php 0 X5 [& `6 g, M# W: E7 X) e
for ( $i = 1 ; $i <= 10 ; $i++ ) { & L& }0 }; ^+ m+ X
echo "这是第".$i."次循环<br>" ; . H: u5 d5 Y, f: q3 j. y3 e* F9 \* L
}
5 _, F6 s s1 `2 P8 l( r3 I?> / ~3 {- j1 }/ r
* E% B1 e3 J8 c0 k @, v. Y# Q
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。5 b* R: M% H' M; D3 B
语法如下:* N1 [2 O* B% c8 o2 P, F/ T& o
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
6 n) D. w3 H( [# M其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
, P% C! x+ G+ n' b4 ~# R7 X: u% N( I/ g# [# w
<?php & Q e8 ?- `# f- Q) A. g7 B% U
switch ( date ( "D" )) {
$ R4 ?3 q7 z* l# J$ Icase "Mon" : + b1 ]* s9 j' G9 N3 X
echo "今天星期一" ;
9 F- r3 b3 }) @ F, x c! c: T" `break;
1 i' T1 Y- ^9 w0 Y0 m# [case "Tue" : ' b+ T* p0 c9 N2 [
echo "今天星期二" ; . b/ z( a3 ?1 n% Y; J
break; Q% p: v- l5 s& @4 t
case "Wed" : ; B4 p1 B" h5 Q! r4 d" ^1 m, I
echo "今天星期三" ; 4 V2 j, \: O; Z- q$ c
break; : ^) |/ Z" [' c
case "Thu" : % _' w7 e" s6 l0 I
echo "今天星期四" ; 6 K: d6 a1 P/ x! W
break;
+ N9 N( A, h# ~$ t/ |; V* ^0 z: pcase "Fri" : ) O- h4 {0 B# l
echo "今天星期五" ;
/ R: m' w9 h! G" D3 Y( I) [$ Ebreak;
7 J. Y; W' v/ P) i3 B# E" ?) F; udefault:
: F# p. {+ ?5 E7 j( k' recho "今天放假" ; - T" [' t( i2 Y, a
break;
% K j0 y8 j2 z* ]& V: L}
9 [/ {( B. j ]) R& T( f7 a?> 8 I8 y# ]- ?' U' @
这里需要注意的是break;别遗漏了,default,省略是可以的。
$ U! n7 W* U/ U! `; O. J很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
/ N0 u# N" b3 L# {8 b7 b( n5 H十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |