php的流程控制 2 c, O* G' ?- Y
2 o, z+ J1 R9 v$ y! s
1、if……else 循环有三种结构
6 y: V) @% ~4 m" U9 l第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 0 Q( P7 ]7 Y+ w4 h
( I4 c( u' u3 cif (a) { statement }
! j. H) l1 P" [( K" j其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
|# c4 D6 S/ g1 A范例:本例省略大括号。
2 H* y7 A+ }3 i1 q7 }
) ]( z4 `& a( M- w+ \6 V<?php
) @# ?* u2 o# q% F, d5 kif ($a==1) echo "我爱php" ; 2 B G6 t- E# o2 m7 b. [
?>
. J0 m( y! K' X) _2 X! b
% g1 O' E7 m: {这里特别注意的是,判断是否相等是==而不是=。
" M `* ~- P7 V2 `' h$ ?范例:本例的执行部分有三行,不可省略大括号。 " s) v/ N9 @6 X3 i
/ w/ `+ o/ r# T3 i( x! L# Q9 x5 Q
<?php
, l0 D) B4 q7 Aif ($a==1) { 5 J6 h+ o) `8 z @1 e$ \
echo "我爱php" ; + d8 c6 {0 z9 n/ g/ O6 [) g" s7 }
echo "<br>" ;
6 Q! V& ~+ m6 N3 m" u+ |1 ?2 C. Q}
$ [( c, x4 w; o5 a?>
+ C- e. G$ |4 j; A& Q$ J* P) F2 [8 w. D1 N' b
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
+ Q: I$ a! W' K; s% \9 J8 s
' ?+ B8 {5 K& q9 c: \# T. mif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 7 t4 }! F) ~7 a+ s1 J
<?php
8 w# `7 w& l' h$ T9 wif ($a==1) {
. U) Z4 ^( G3 gecho "我爱php1";
6 B9 U( I' N! p+ Yecho "<br>";
( u# b( ~4 \, P+ t}
' J8 E" i, _" t, nelse {
! _% N4 V9 r4 Y6 decho "我爱php2";
8 E" p) ^" B* g) N+ l3 s5 Y& becho "<br>"; * N) v) \1 O2 w+ u- j
} ! ~7 j+ w* ]: I1 N
?>
! ~0 }! W4 O2 m8 d. J* f0 [
, {, V( G3 O* c; W9 c第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。 S4 P0 I0 x' c* K) H/ m
直接看下面的例子 , W! T) m4 g8 l% X
<?php
9 ^6 B( k9 j4 F) `4 qif ( $a > $b ) { ; N2 e* X4 C/ F& w
echo "a 比 b 大" ; 3 t" V7 Z- w! b y. y
} elseif ( $a == $b ) { 9 v! c6 @) B$ C' X
echo "a 等于 b" ; ' l! I3 C& l p p
} else { " m3 x3 g \. o8 ]( N- U
echo "a 比 b 小" ; : |% q6 ~/ I: Z }9 c ]
} * ?# f4 D& ~7 M- m
?> f; e8 ?# l% N8 v4 X% ], J& e$ E
$ P3 G$ v( z8 T# |. ~1 r2、for循环就单纯只有一种,没有变化,它的语法如下 8 x& h2 e' \- D8 {, [8 r
! ` x: e& U$ Y& T) i% @for (a; b; c) { statement } , U r9 D" x& }, H; w
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
4 O, D& c/ A# e5 h下例是用 for 循环写的的例子。
/ C8 ~7 j! T+ k. o! [8 T<?php
( D, I0 `* \. q2 Zfor ( $i = 1 ; $i <= 10 ; $i++ ) {
, _( q" o4 z A$ h; @echo "这是第".$i."次循环<br>" ; & ~' V6 e* g8 n7 }9 p3 x3 n0 C
}
2 ^2 s8 F' a# V4 j?> 8 O1 p: f. j( M& I$ U: Q" B
( G% \/ S6 e: S( j" W# b* b0 B
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
% x5 J+ `6 B: `% H语法如下:
$ p. x3 ]; y" u* d: v! k ]switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 5 V$ t% u& y- X8 o( y5 A' [
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 9 H8 R* G6 ^/ N( C
& m8 Y9 |( S% a$ w( \
<?php
! `2 s, u8 @7 t0 m- nswitch ( date ( "D" )) {
. t8 g j7 W5 V) p/ s+ Ycase "Mon" :
1 ~' A& x0 k' u. W1 M5 S, Zecho "今天星期一" ;
: g* @: Q1 {* f% xbreak;
- n! {/ s: Z. ?# zcase "Tue" : " X2 ]5 ]& ` i& _9 Q
echo "今天星期二" ; 9 Z- ]8 W4 n% W, O/ q- a
break;
/ B8 p1 ^: {4 x% g c. {! {case "Wed" : ; Z! n% g3 O% @$ v* y
echo "今天星期三" ; , d( g$ T& w! V* d- B! n$ s. k
break;
/ z; E! |! @# `case "Thu" : 9 M. A9 ] f; {- E& r- x8 ^
echo "今天星期四" ;
; M1 h8 m K7 \. S! U* W4 jbreak;
1 J3 z! v$ E9 g2 f6 dcase "Fri" :
6 {4 Q! q, ^4 t0 uecho "今天星期五" ;
/ f' }& t2 W6 d% jbreak; 8 T2 h7 h4 m. j7 ]
default: $ N: \: t9 r: h/ @. x8 a7 E
echo "今天放假" ;
! |/ |9 Q- o' O* Fbreak;
- [; I. M1 X4 q! i4 Q0 Y) b} . A/ u! q3 I0 ~; k( m3 B
?> + E2 ?* v. A0 E) ?7 Z- T1 r
这里需要注意的是break;别遗漏了,default,省略是可以的。# a% T( z8 Y; M. H& G
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。7 c0 G1 f7 {% v) g$ ?
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |