php的流程控制 , E1 m. ?1 ^) y6 z5 w" @0 v* F0 }
8 ?: P" W9 y; q6 p; L6 a
1、if……else 循环有三种结构
* c8 `2 k( h, [9 V第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ' X. f! Z8 y J
& o) ^" J o# ^" t5 i; h5 X8 o' Nif (a) { statement } ; w, V; s7 B: |6 W# d) k' ]& @; E U2 t4 z
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
$ e$ n) X# e/ H# A范例:本例省略大括号。 3 A6 {/ R1 t, A' y C. v! ^, C
+ N7 o# Q; u! E+ y7 E- a<?php
! I" P5 v: c) J/ d% t0 ~7 tif ($a==1) echo "我爱php" ; 1 c% l6 |, B# @, j9 m7 ~- u
?>
9 @- n) K( g' D! V0 ~) }' r7 m6 @1 U: p, g- L
这里特别注意的是,判断是否相等是==而不是=。
$ z+ @8 G2 q V范例:本例的执行部分有三行,不可省略大括号。
7 h; g: E! T% c3 L# q* v
, V3 B [% V: ]: r5 q$ ?0 c0 s) o<?php
2 u# s0 y0 m7 w. y: Q! gif ($a==1) {
9 s' c S. m2 d+ L2 m% Oecho "我爱php" ; 5 R$ O' p7 O: _8 O9 J& n
echo "<br>" ;
8 j" x5 g, M% o$ h}
6 r, u% v, M& R5 ^?> 4 H0 v' J+ z) [" m# e2 o
* x' d( X* k' ?, r! X7 a
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: _6 B' T+ \+ H( l: o- B7 \
0 j0 U. x' v2 ] h* o+ [
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 2 r; l! }$ x0 F' R4 M
<?php 0 S6 r6 z4 f4 I# e; \6 f
if ($a==1) {
8 n$ l4 Y6 m# ]( A/ t8 Q necho "我爱php1"; 8 N* t2 t+ x" V, ]9 G
echo "<br>";+ f* U2 p2 k1 Z
} + J2 s- p5 t; W& K0 o
else {# L# z" x+ R: R
echo "我爱php2";1 J- `" X; f4 y
echo "<br>"; 4 ]3 ^# G5 f# R, l' o* ? n
}
" T* \' D1 o8 d) w?> / l. x4 W8 L' s
' e! q+ J/ G, R- I/ n
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
8 f! |' {5 i1 u2 {直接看下面的例子
! B) s$ m# T4 Q6 N7 I8 E E! X<?php : `4 r7 @% J: h" F1 E( u, f
if ( $a > $b ) { 3 k1 {* _9 z8 v# h( @3 P
echo "a 比 b 大" ; 0 b" U$ q& @9 A, U5 a) {. b, n
} elseif ( $a == $b ) {
' I' E4 B! K2 X! W4 ~6 @echo "a 等于 b" ;
/ m9 }7 w V2 X% k2 |# b) y} else {
5 W" X# p! Z4 @' }& Kecho "a 比 b 小" ;
6 s- N! b I* ]- k! X" d}
; u" f4 V/ R2 s6 [( X7 |?> 4 \6 D( _4 u# o" v
; e$ c; E4 V2 J8 ~3 j2、for循环就单纯只有一种,没有变化,它的语法如下 2 \' M9 n5 i, E, z, V; M s6 @
- O8 N- [9 ~ M# {1 L3 Q Ffor (a; b; c) { statement } * ?9 m$ Z0 @, U, s7 r5 |
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
4 V9 v9 f3 e, b8 b下例是用 for 循环写的的例子。 : M* G5 i! C3 D; q. g
<?php
1 l- i$ W0 U. t% A# ]! _( Tfor ( $i = 1 ; $i <= 10 ; $i++ ) { ( m( k8 K1 {3 t; R3 O
echo "这是第".$i."次循环<br>" ; % D5 ]% s0 j7 Z9 ]8 g- y/ o
}
! T3 d4 m) H% S?>
2 Q y* K; [$ W. e1 \% I0 x
8 Y# U0 u# D; E! ?* D8 D! Q5 m3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。2 {4 @' i0 f! A: q2 _& X
语法如下:, }' K; y. m6 p' y- y8 p
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } % ^/ N" y0 i7 G5 u- d# u
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 8 e( V" X) S( I# W; ?
7 j5 r4 Z4 W6 u4 ^+ o<?php
# n9 V) q, z0 {switch ( date ( "D" )) { 0 H+ A4 c* W( e3 k! v5 ]
case "Mon" : 3 r3 F }3 G8 V. b
echo "今天星期一" ; ' Q$ C! q1 S* n8 w0 [
break; ' a, d: z4 M3 W; {$ q
case "Tue" : ( P. M6 {' e: m' s
echo "今天星期二" ;
' Z( h4 Q6 W6 h7 c; F T0 Y" pbreak;
; u/ W. g/ G% C/ u3 Ecase "Wed" : + _0 r, U2 x: k) v' |
echo "今天星期三" ; 1 h$ A; \2 S% z5 V& F8 a, ]
break;
$ F. b. @) y* W. f- b) _case "Thu" : + }7 z$ O- a* G. N9 f
echo "今天星期四" ; $ G& [% C0 x* ]. a) c/ j1 n, g
break; 9 p" `1 `5 n& B- E
case "Fri" : * o& s# J) ?' N
echo "今天星期五" ;
/ a5 C; M2 L6 [6 z0 N; Qbreak; # z) n" L% B, U6 Q3 k2 [
default:
7 ?/ {3 W3 n! B6 }" Cecho "今天放假" ; 5 S0 g0 B* f! A% k$ z+ k, o
break; % x& F: D0 R3 n- u! d. p" L0 I! `4 ~
}
) r; `2 G* K8 \/ Q0 ?6 E2 m4 U?>
& E' \! X9 v6 F8 a/ M4 p这里需要注意的是break;别遗漏了,default,省略是可以的。
: V; j& m. p& M( `% I+ u: ^. W. f很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
9 [7 ?/ w$ O6 ?) ]. ^, D; U十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |