php的流程控制 . u9 A& {1 o2 l y) o
& c5 T. S j' m5 q$ C* E
1、if……else 循环有三种结构 L5 w+ ^% X' }, Q
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
p k* E2 A* p/ w( A4 W' T" `$ k4 Y3 D3 P( k; K1 U& e- x
if (a) { statement }
; K& C3 d& U+ l& u. ~其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
& J M( t: B# c( I" B% U. E范例:本例省略大括号。
. V E& K Y, V L2 @1 w0 \& `5 h7 a! J& m; \6 i/ d2 b) I* b7 v( O
<?php 4 e* B9 Q0 [% ^+ p {& Y/ o
if ($a==1) echo "我爱php" ; % x9 }* F( t& l% _1 i1 V) _
?> ; ]$ Q4 b7 p) P
8 y1 }+ w5 l) Q这里特别注意的是,判断是否相等是==而不是=。* }* [8 f+ [ r& T
范例:本例的执行部分有三行,不可省略大括号。 ; `0 |* y" M: l. o0 I% M
$ f4 E+ V. @! J* G9 _- B0 i<?php & e' m# G6 u. j$ M1 n
if ($a==1) {
0 S& u% j) g9 k3 p9 ^echo "我爱php" ; 1 ?$ w4 S. u6 T+ p, q- J4 s
echo "<br>" ;
$ Z$ A1 I1 G& Q7 l% M} 8 ^# Y( `. i: A: K8 w, u$ f1 V$ S
?>
1 k. A3 ~% n& `4 |& A7 h# x5 z" T" `" a5 t. z8 k, t" Q
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
) d4 \1 M x5 B6 T% s0 P8 \
( y3 ^ u; e/ N' K3 \if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
# w" g( t7 d5 V8 I0 y6 ~<?php 3 X6 T* b% K) G2 H/ @# ]% ~5 c0 v
if ($a==1) { " b' @# O' Z5 Z9 @$ h
echo "我爱php1";
+ |1 }7 S. p8 F5 J( K6 Y1 R" T {echo "<br>";
# Z# T5 b& L( }; f5 Y0 H}
' n) B+ N3 E3 G+ g! c0 Yelse {
2 x, ]3 X- L6 X' fecho "我爱php2";
" `- a* R5 W* y0 [% f O7 u' \echo "<br>";
5 `$ H) `- M! s! P8 a' w# y C}
& i" s6 E4 V/ Z" m/ @?>
9 M8 c( O! v" @& ~) M( j9 P2 R# \
9 }# U* o1 F7 J6 ^第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
1 z4 R: x& X5 s4 G- B直接看下面的例子
& B7 k" z( w- M. m6 ~, X, M<?php % u* ~. g# w% n+ I7 q
if ( $a > $b ) { / x$ t( R, ?; @0 O4 K
echo "a 比 b 大" ; + k0 F8 p! R1 X% x! l
} elseif ( $a == $b ) { % ~( K* d" {/ ^3 K } G
echo "a 等于 b" ;
) v3 Y6 w) Z: ~; f6 Q5 Z9 `2 k} else {
0 H6 ~$ ]1 H) h5 H7 U! }: N+ X8 Iecho "a 比 b 小" ;
3 n/ X: y% {' P/ d} / z- Q9 A+ d7 @( @9 d0 l
?> ! t7 C+ W$ r! N$ y0 J) B' q
% x; g, o L+ ^! B; F
2、for循环就单纯只有一种,没有变化,它的语法如下
' _4 j/ c3 y" d% ]) b6 M# D! d0 R: b' |9 J
for (a; b; c) { statement }
8 x$ f, n9 ?! n) K% h& i* p& `其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
u+ ?) \3 ?) c0 O6 O: q( c4 f0 O' I下例是用 for 循环写的的例子。
8 W2 Q5 T/ u$ C/ v. q<?php
/ `# P: n! w3 F, @7 C2 Jfor ( $i = 1 ; $i <= 10 ; $i++ ) {
9 R$ \4 c& U+ y2 z, R s; r* mecho "这是第".$i."次循环<br>" ; / W: \$ M( H5 v1 D5 G3 N6 A
} 9 A+ K: [5 x9 s/ l3 }. l
?>
; }0 X3 a7 `6 I& f* T4 D% W, Q
; g$ m" \, \) x& Q# F2 a( W) z3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。( X% j7 \! ^! Q- Y
语法如下:
& X/ k. `& y2 ?* j1 G6 }switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 5 ], R, ~1 i6 h6 t
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 2 M3 w3 ~6 W$ Y+ @
* M; I+ N4 l+ C. R8 A
<?php : D9 x8 z3 ]6 E* h4 x D
switch ( date ( "D" )) { 2 P7 F8 K& D5 O
case "Mon" : . X; f' s" ^3 m' x W) f6 [" j
echo "今天星期一" ; 8 c) D! |' }/ a- c! D
break; 0 T4 _/ y# W3 h7 \' u! ]$ P
case "Tue" : " d, N$ ^1 O4 H! Z5 v% [) _! b
echo "今天星期二" ; 7 s% S/ Z% P1 C( a, a5 a/ u
break; ' i" m, I! Q/ I/ s0 u" x
case "Wed" :
- F) Z0 R/ ?5 [5 c! V, Pecho "今天星期三" ; $ j5 Q! q3 ]8 t( m4 _
break;
. a0 Y5 I/ e5 m" @# xcase "Thu" : ' [" p: Y7 s4 ]
echo "今天星期四" ;
' [+ V3 \$ t! V: Jbreak;
2 A; T3 Z( y! a8 G, Ocase "Fri" : " O5 V' X! A/ d3 v$ g, c
echo "今天星期五" ;
+ R' G' S1 `( X, Q7 Ubreak; " y+ |' K; l/ y: u
default:
& k! i! o, u+ j/ k- K0 ?7 Wecho "今天放假" ;
7 O/ B$ X9 H8 e8 qbreak;
" e+ @( c/ ?: T}
; S9 C1 c' y& u5 h/ Y?> + b; x5 z# n R F
这里需要注意的是break;别遗漏了,default,省略是可以的。 m; ]+ D5 b% F( I
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
4 m# t0 N$ @. Q3 C; p. @' u十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |