php的流程控制
+ I9 g; s7 u& W( B# J: c) c
, b1 n6 u7 K- u8 j7 k1、if……else 循环有三种结构
0 J. F& B2 v! V第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ) i3 K1 I1 J; A5 W. Z! w/ s( @
# t1 p" Z, @+ I5 ?7 m- D
if (a) { statement }
( @7 N/ {- G8 X$ {: C+ e其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。( L2 R2 ^, N2 \) W% z
范例:本例省略大括号。 5 V* G( m s" A. z/ ^0 F
; B. X/ G+ t/ Y2 D# p1 K
<?php - P# A8 f' c- P: [
if ($a==1) echo "我爱php" ;
/ M# P8 |+ n2 ~ U: G7 R8 g?> , C _% C9 }) A/ N2 ~: B: ~
% s4 I# L6 ~# o这里特别注意的是,判断是否相等是==而不是=。
, J# S' ]1 z% M. Q+ E( }范例:本例的执行部分有三行,不可省略大括号。 : w5 g$ q8 ^. H0 ~
# v! L5 L7 h2 I1 }* G1 K
<?php
# l+ Q# C8 y/ i# e( g5 R1 Bif ($a==1) {
( O/ B1 \2 \, o9 ^% A5 w" ?) ?echo "我爱php" ; ( y5 Z; y6 o9 M" Y" u3 h
echo "<br>" ;
# x+ S% z9 t5 c} " ]) C' I% T7 T4 ?/ }: U
?> # |5 L0 o' A7 e* U- }
A$ H- j6 X3 P' Y
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: G) o% V: H! O
& |" T4 b0 T L4 G' P$ m1 Zif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 . r; C3 \' |+ Q% e% s% \6 H/ y
<?php # r( R }+ b" X' u; I
if ($a==1) { ( d! F/ e4 E% X$ ?9 t- S
echo "我爱php1"; 3 E! C: z, C% ~, t3 T, v
echo "<br>";
9 u6 B& Q m7 G1 T} 3 E. {/ ?( D# i; l6 {/ v
else {
. k6 L- p# |( b7 secho "我爱php2";
* u* |. Q( B3 S M' Pecho "<br>"; 5 t+ \( l. z$ z0 s8 J4 W
}
( a$ P' L4 Q; p?>
1 B2 p7 Q! S( W2 W+ ^" X- V
v$ N1 P& h: b% b/ m第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
: b6 f" i; S9 k2 n! M直接看下面的例子 ) D+ B, h9 P$ w% Q' X) R
<?php
$ T2 U, f. {/ y: R8 p3 I1 c+ ?if ( $a > $b ) { $ D3 m, E: G6 O
echo "a 比 b 大" ; , C1 U+ r, g* p, a% \- I2 |! |- Z; }
} elseif ( $a == $b ) { 1 ^! Q3 F b& O& z* t. b" W8 B! Q
echo "a 等于 b" ; 7 i6 f$ @! |& s
} else { ! v8 i( j! S- ]) w) H
echo "a 比 b 小" ;
& }. M+ h% q! ^( x} " l. D+ s1 [( \1 t2 K3 i$ A3 l( ]
?>
3 @7 g# K/ Z, k9 J6 m: u8 y' J) }8 h2 D. \8 I" F$ h
2、for循环就单纯只有一种,没有变化,它的语法如下 9 {7 X h; c8 D
. ]" C5 V6 A. \8 G
for (a; b; c) { statement }
, X* K$ j; I& ~6 B6 P其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
! e! m3 r4 Y R2 l0 {/ u下例是用 for 循环写的的例子。 ! a0 A: S0 ?7 G2 C- F
<?php
# L6 G* q* V' v! g: o0 {+ Ufor ( $i = 1 ; $i <= 10 ; $i++ ) {
! _) `7 }& D3 Gecho "这是第".$i."次循环<br>" ;
2 x) [4 f2 m. e} 7 H+ x3 ~9 j e2 q+ T- N
?>
3 t+ l! n+ Y+ q/ ]5 ~( F* \6 c2 B: I' s5 z
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。( _8 a7 p+ t8 S$ ?; Z
语法如下:+ k7 _5 [% Y$ q3 q
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
9 A. v2 }( M0 e, c' g9 X. l/ D ~6 z其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ! v# O: E) m& a, I' Z8 }; E
( q# r& A& _: B \; D6 V: Q& z6 W
<?php % }4 l" u; A/ e8 z" ^
switch ( date ( "D" )) {
/ l& a! L0 k! U" T/ p3 M! Fcase "Mon" :
+ o; I9 R8 f5 x" {+ m) x# }echo "今天星期一" ; % F% j5 N+ }6 z7 S* Y2 N1 r
break; ; z; A# i+ [: S
case "Tue" :
6 y+ ^, z! e$ t' h2 Q. w) Aecho "今天星期二" ;
?$ p7 v2 _& nbreak; & V3 Z$ A4 f- W3 x4 ~! M. `
case "Wed" :
7 B$ w2 g" u' p8 W3 R4 K/ iecho "今天星期三" ;
# x4 }: F) T v8 E$ s/ wbreak; 1 C# |3 ?/ L5 d- |$ g
case "Thu" :
+ b. W3 m; M# O5 {& yecho "今天星期四" ; . f1 J( v! M% O' I' `
break; 6 E8 Y7 U+ v7 @7 a4 J) C: e
case "Fri" :
% j7 v: ]+ R* a8 A5 ]0 uecho "今天星期五" ;
/ w. `2 C+ @% B+ A; n; z! W" abreak;
+ o9 Z, [# n% xdefault: ) |) R( t- @+ C, L7 {
echo "今天放假" ;
) G) t0 ?# I$ X' f0 j$ n1 b7 ~- Obreak; 0 c x# X1 x# J2 n- f6 p" t, o
} % s. \' O9 v& ]6 O D5 a$ {
?>
/ q9 U6 {( J! u这里需要注意的是break;别遗漏了,default,省略是可以的。
& d7 Y1 m& k. n" T) J# _很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
/ i6 s! f" `' ~6 u2 u4 j十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |