php的流程控制 : D! d* a0 I9 Q4 ~# J0 v7 {
: ~" B9 V8 g* Y* |9 u. R# R" E1、if……else 循环有三种结构+ b4 J' N& F4 z5 u8 r
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 6 j5 g# F- i9 @
9 M0 N) p2 C3 I: g6 ~7 \. o6 j
if (a) { statement } $ g# k; y; Q' T& ]( g3 B
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
5 A2 L( j) G" S4 y, B; H范例:本例省略大括号。
# ]5 Y3 I2 Q Z$ E0 T4 R6 Q: e8 ~4 q# J2 b+ ?. W( {& A
<?php
! K) e- `( s. J2 e# X5 ?/ p+ jif ($a==1) echo "我爱php" ;
3 m2 ^& m/ W; Q( x/ J?> 8 n1 o6 q' l1 ]# l$ m, O4 b. s- E
9 t. l* e N5 w: J: ^) H# p& d9 ?! u& i3 \
这里特别注意的是,判断是否相等是==而不是=。
- Y; }1 B9 a8 K: U, ^* o" z范例:本例的执行部分有三行,不可省略大括号。 1 D2 f/ |9 R, M; w0 L$ p8 f9 X
. J0 Z; K* s* [ R& s# d# _ N! E$ }<?php 3 O9 u1 h0 S# C6 y4 l! } F4 U2 m
if ($a==1) {
3 p* w# p9 S0 t6 |) i# Eecho "我爱php" ;
( y# M; o4 Y5 Z% _echo "<br>" ; ! ^* U) y* ^0 _8 \% \$ P
} 0 i+ P* J5 e$ s2 ^
?>
/ W. C, H' I; f; r8 P, M
: L) C |' n0 p; v+ e第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: - Y3 [; r* V# A. r" X
2 \6 @5 N' g( X1 ~, s
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 , c5 i4 e. `( ]# L6 g- g* k
<?php # x* G4 w% D# {6 O* y, c! n
if ($a==1) { ' [9 L7 z S! Y( O& s8 P
echo "我爱php1";
! V( o. F" C v2 @% X$ A2 [# t% secho "<br>";+ j6 Z% o! z( D, {5 C7 x
}
9 v# K, b: y$ U9 `+ k& i4 H; Felse {
& M: V1 y1 D6 wecho "我爱php2";
6 H6 p1 p5 q2 f1 V9 v' r5 r/ O# \* ^echo "<br>";
6 v3 E) }9 ]/ }8 \% S7 S& }% t ~}
+ {8 Q9 ~. c% p6 t) P9 c, m% q) x?>
5 Q. D" t1 V9 B- Y1 i
7 h1 W' z8 H. {: Q) f0 M1 Z% p2 ^第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。" d/ a% U" ?: N1 W7 L$ p
直接看下面的例子
8 n6 y6 r/ T, [7 e' F, u$ [<?php
, C2 H! S/ I9 w5 [if ( $a > $b ) {
2 K3 r- Z. n' b- G( u; U1 ^echo "a 比 b 大" ; 8 ~' X8 D# f" y
} elseif ( $a == $b ) {
1 v8 n% z' H4 E6 [6 |' t& ~echo "a 等于 b" ; / H6 w: G* D& C! }( X7 t" l
} else {
' c% n, `, Z' [, [echo "a 比 b 小" ;
0 q* c. v0 l2 r1 Q! b}
" f f, P) D; M# y?> * F/ \# P1 c( K1 X" \, l
3 S& U; K- l J; t. t' G. i+ P$ n
2、for循环就单纯只有一种,没有变化,它的语法如下 * `! s" K+ s d& i
% I; P W# h5 ~7 A& `& p# ?for (a; b; c) { statement } 0 o- e* @$ |( Y, Q9 O( I! B
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。: n$ B) x; z) [; b
下例是用 for 循环写的的例子。 # C) B; r9 F4 |' J2 ^! r
<?php + N. z! p% h c1 [( o
for ( $i = 1 ; $i <= 10 ; $i++ ) { * a" V$ R* ~; ?" k, Q
echo "这是第".$i."次循环<br>" ;
2 h5 ]% @9 K$ A! R1 |}
" m; q1 T0 `" c?> ( E" T- s/ `& ~* p9 @1 e- f0 S0 v
4 X. Q" i% w1 Z9 V' _$ B3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
! _ X* l" X- S2 S( Z; J语法如下:5 y- j1 e2 h. C" O+ B) R
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } K. }" A; c0 w+ w" F/ A& z& b9 C
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
% D3 Y( ~+ d: X" p4 k4 R
9 u+ w! U. P4 @7 R3 J<?php % V) o. |2 Y0 R
switch ( date ( "D" )) { 5 Y4 \8 X7 F: p( y9 X: Z' D$ q
case "Mon" :
) K# c( _6 z1 A& M# vecho "今天星期一" ;
% H' N) `/ c1 r/ y+ ^: U4 kbreak; 5 k5 m- f: u4 w# o. ^9 K4 Z; s6 v
case "Tue" :
! M! c6 ]/ l$ }8 e3 n: |echo "今天星期二" ; 4 L M" s2 S" M& v6 P
break;
: S( I3 L g6 t2 f. i) Q [! Scase "Wed" :
4 d& M6 v4 N1 k/ s# J# \echo "今天星期三" ; # r2 Z- b5 h2 N5 a& g
break; & k1 N9 V, f$ m
case "Thu" : 5 y6 ?) E- D# \1 M2 \, b
echo "今天星期四" ; . p: V( s7 m; o/ s" d
break;
% c8 u: p6 f+ q* \. P1 [8 \" a8 Ycase "Fri" : # r( J: v5 t0 v; C( j
echo "今天星期五" ; * p1 T7 N6 k: z1 ~7 v7 t7 ~& d
break; + |/ O3 ?$ p) G1 Q C
default: : d0 a& K% g$ k" y
echo "今天放假" ;
+ J( Q' ~3 a! J1 \5 A" ebreak; 7 g7 S5 n3 s! G1 M" ]
} K; h; H7 g/ Z: e/ B
?>
: { Q' B) N9 ]+ ~( U4 b; Z这里需要注意的是break;别遗漏了,default,省略是可以的。
8 h; _( D: P" t( p1 C* u很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
, v: N0 K: q c v L) ]十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |