php的流程控制 ( A& U" \: g: x, r- [- p1 b7 g# Y
& S7 X$ G* L7 B( N! u7 H- w1、if……else 循环有三种结构- M8 @! t: ]; m/ R0 b
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
1 y' m: b& a) R3 z/ s( e; J
8 b. }* m0 j0 F; m3 i0 Hif (a) { statement } + i6 d- U9 L0 ]- b( ~
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
" r9 W' B6 N c( C. J6 C' @ y( v5 u范例:本例省略大括号。 . Q- B; [$ o6 f; |% }
- j/ v |% [6 n3 R( J/ W
<?php
% V( K7 _ }2 z' d8 Lif ($a==1) echo "我爱php" ; ' r0 \' V) f6 p& e9 c6 K
?>
4 x7 {, S* f4 ]. T; O0 H0 [0 A U( t% x [& h1 k& @; @
这里特别注意的是,判断是否相等是==而不是=。
3 R3 U% l& X! r( x/ u* w范例:本例的执行部分有三行,不可省略大括号。
/ N o- U# b P6 g9 g& b/ Z
9 O3 [, `8 ], K0 r6 v0 N. X<?php . l: S4 b$ @% b: V# b4 `% [
if ($a==1) {
) k7 D4 @7 ?4 Hecho "我爱php" ; 9 x9 U, |$ b0 t: O$ g
echo "<br>" ; ; y- m! L6 k n7 N1 @) G
}
! C* h6 R \; W* k9 Z, N% C: |?> 3 s/ G& U2 j% v
# T- ?" O @! @) l8 R8 t3 |第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: : p, _" W1 t/ J' f& U5 }( z( F
( E# A& ]: }+ g6 j9 oif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
7 D- @* F- R# e" A( |3 p<?php % ?3 t3 ^" Z5 W
if ($a==1) { ) {! ^ c# r9 T7 u' c4 r% J
echo "我爱php1";
# l4 l6 b" r' @4 v- T, g4 L) |4 Uecho "<br>";( h% E6 }) W3 ` ?& j) K, n
}
7 v; E, Z$ A) A2 Q" N7 Q+ V0 O& _ helse {
; [' s/ Z, D" |: [echo "我爱php2";
0 b: y9 x, j- f0 V* s' M( y% N" Wecho "<br>";
" d9 ~6 B; c9 X( P7 i6 m: ] N0 d}
0 ]0 V. }, r. V8 h?>
) U+ V( q3 w' u& o
8 r3 c2 L2 |1 c9 v6 i; A) E第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
0 \& K: b* x! I; s- S& Z/ ^) R+ \: e直接看下面的例子
8 W- i" |$ m c8 O5 f2 H<?php
7 p7 _% A' h! e) a$ ]- }, ~" `2 s8 _if ( $a > $b ) { , |' ]' c% w6 o6 Y
echo "a 比 b 大" ;
) V- h! V l( S. Q+ u8 I- s} elseif ( $a == $b ) {
! M. N/ b* z& H, t% ~8 t4 _echo "a 等于 b" ; 7 j1 R$ E" w' @7 i) S0 v, e
} else {
5 d# d+ d6 c8 s" |, o! Vecho "a 比 b 小" ; 6 _0 w( }: }! s; y0 _% u( R h$ F
} - g# L! \- {" x6 K
?> * N; [8 ^! u7 p4 j- I7 ~3 T1 d
+ D2 q" B7 k) X% X4 }6 w
2、for循环就单纯只有一种,没有变化,它的语法如下
5 n% U! P* Z: |, C1 @! @- g2 n2 B) E0 Z1 n/ S4 z+ b
for (a; b; c) { statement }
# m: S5 D( v/ C A其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
6 T* J% u& s8 {3 R d% b下例是用 for 循环写的的例子。 9 j& W q v9 O
<?php
9 P A7 P$ J+ p* q) n- C$ y' lfor ( $i = 1 ; $i <= 10 ; $i++ ) {
& b+ c* a' k1 Q0 c. e( p4 \echo "这是第".$i."次循环<br>" ;
) y5 a1 c1 i% A6 h) J} - _. g3 Y' a6 c" C- \
?> " s% z/ j3 _% V& ]7 P
& ~9 o9 u. a. p# ^3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。( Z) ^3 d% |! d3 U4 p0 {
语法如下:% j: _# N% }1 o5 }1 ^8 z1 h
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
; l/ O' c1 f( s其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ) r0 N5 a- _ ] K% H
1 z/ O# p+ e6 L+ [' ^. n<?php
% ]$ h% f4 |3 {switch ( date ( "D" )) { " w/ ?0 j. x% n) n
case "Mon" : ! e9 j6 d8 ?) `1 {4 L
echo "今天星期一" ; S+ q/ k0 I* Y/ A' \8 u% ]
break; # T/ I' E. c) n6 F
case "Tue" :
, S4 ~2 e+ B k" k' C" Z( x* x% becho "今天星期二" ; ' _* W/ S& [% \7 i7 S0 a2 d2 w6 n! k
break;
! q4 I) b' U' B* Ocase "Wed" :
2 T. m1 E' ?- Gecho "今天星期三" ;
' s; x! p4 }% b- V. W# P. T. o8 N8 qbreak;
' s. ~6 P5 q! gcase "Thu" : 7 h K! f- e. B. P" H6 }. m
echo "今天星期四" ; 5 h6 r# P, o F
break;
. f4 y ]4 ] V1 y) t& _0 q+ Bcase "Fri" : ( i# P# z Q( }. w7 b& ]
echo "今天星期五" ;
4 J5 P* c8 R# l' K4 jbreak;
/ N" p( S t8 c0 i5 k& Wdefault:
/ Y) T `+ x+ f8 T3 zecho "今天放假" ; 0 Y8 p0 E _* q" w/ m
break; 5 R2 o' O. e% u7 i2 l# H, B4 S
} 5 H8 q" D* y$ n8 d$ d; J. v C$ r; W
?>
x; V0 C% J& m这里需要注意的是break;别遗漏了,default,省略是可以的。
; J' E0 ] k/ e0 p8 q2 K5 Y很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。% r% Y7 _) W% F- g
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |