php的流程控制 ( E* b; `1 u" K% g1 s
) V/ L3 R0 ]! K, C# b) A% B" b
1、if……else 循环有三种结构5 ]4 R6 M# p$ r" \6 M4 ?
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
]2 }8 V" C) S2 R* |0 \$ g
4 {; h6 \& A. hif (a) { statement }
2 \! s' a/ a3 @其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
8 O. @/ |' L2 K( E& F; F范例:本例省略大括号。
; C% R! K8 Z4 f6 L0 A# S- e4 H% G: {4 H( U2 k7 q
<?php 8 P( f+ a: Z5 `' l$ d; N; v" s
if ($a==1) echo "我爱php" ; V- H) M) h7 t0 l" l" e* S
?> ; p; [5 a- ^% [# y, y
5 ~2 ^, P8 F7 P; X
这里特别注意的是,判断是否相等是==而不是=。4 c3 E2 j* U+ V3 ^
范例:本例的执行部分有三行,不可省略大括号。
2 K$ F, v8 p4 j9 M( G% _+ C* D2 m2 K8 [- J7 V8 G% w
<?php
5 a" Q3 b8 m* m) ~2 pif ($a==1) {
8 q; \ r0 R5 Hecho "我爱php" ; ! p* N4 f5 L) b% y, X* b% P5 i
echo "<br>" ;
4 x h9 U+ p8 {2 Q( q: d} 9 j4 a1 a* \: }8 S8 l Z O
?> & A" S) ~4 H+ |8 s. P" n C+ x. p1 L# B
. R( w# ]4 x- x2 ]* B第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
. N3 U# V$ J0 u( {
( [# J. S0 ]& T& \) ?if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
2 i7 y' e) k2 I+ J<?php
" u' q) [/ i7 V2 o$ g4 t6 fif ($a==1) { # U4 o5 Y5 Y! U! C `
echo "我爱php1"; , {4 v; R# {0 _* J; {
echo "<br>";
: y }$ L, i+ g1 _) c, e} ) l5 e0 L! S& I& T
else {
$ c, v; G* v) @+ b$ qecho "我爱php2";8 W0 }" [3 i7 z5 S
echo "<br>";
8 \7 E# m/ d0 P- g, a: |; I}
, t, i0 \0 T6 _% s" \/ e! D?>
5 N8 ^- [; V; M- ]: }* D
% b! ~' b3 d3 h7 z7 d3 {" w4 h( y第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
U$ L6 p' i* O; w0 L6 W9 k直接看下面的例子 # C# K! |* t% ^6 G; f2 c
<?php
/ Z: v' A1 {; ^, z6 P2 v6 c6 Z# Dif ( $a > $b ) { # Z, U9 h8 u3 l5 a9 {3 o
echo "a 比 b 大" ; + G3 {' u: _* H* S+ V
} elseif ( $a == $b ) { ; Y- J( J1 N) V6 |0 Z2 ^
echo "a 等于 b" ;
' x6 T: z- @3 [' \) E+ |} else {
" ]" B, K+ D1 l7 ?: Pecho "a 比 b 小" ; # p/ ]) B+ J# K; J# b: G: r1 Z+ Y
} : r2 s) s: j- d. ^4 l# {7 R
?>
2 j: z+ E# }- H) ?
+ U0 s/ p+ \5 t! j% |2、for循环就单纯只有一种,没有变化,它的语法如下
9 R; K) s) I% S! l/ W# O
, I& }# O; A9 }5 cfor (a; b; c) { statement }
6 b3 Z5 \9 ?- |/ z+ `% j7 D) U其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。3 T* `9 E. S* T% q6 f+ s* J" u6 ]* Q6 `
下例是用 for 循环写的的例子。 + a7 ~1 y2 h1 |% H
<?php + s( H/ j; r( ]7 q. R1 G) d9 Q. H
for ( $i = 1 ; $i <= 10 ; $i++ ) { ! D% T( g& t- G6 ?2 Y4 W% x
echo "这是第".$i."次循环<br>" ;
4 w- w& U1 g: y$ o! S1 f' M}
# S0 n; T. U4 u2 s?> ( _/ @0 I5 e, a R) G5 D/ s
}" Y, o5 P6 B! u: a. O
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。5 P0 B2 n; M) ~- z% ^
语法如下:$ f9 ^# L" ?5 ^
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 9 v2 k k$ H7 J- Z+ s0 I
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 3 e3 h& B; d) o& N3 l
: N( o/ w$ g4 \( |$ V8 {' n' ~<?php 1 ~! Z; I% [5 P: \
switch ( date ( "D" )) {
2 K# U7 z* m& E# [% I- Ncase "Mon" :
- j7 }$ }: K: Uecho "今天星期一" ;
( K3 u' w6 p! jbreak; 4 w( b2 `1 o2 ~9 H( e w
case "Tue" : ' ]+ U, {; s) O' C% e% b
echo "今天星期二" ; : A1 J, ]7 E5 B7 i
break; # f9 U8 Q- d n. f% k
case "Wed" :
: e: ~: w+ Y- ]' V( V* x2 Qecho "今天星期三" ; - o0 C+ A$ m5 J n# ?/ q) \+ \0 M; @
break; , l* \% X" @8 D) a& Q0 j# q: |
case "Thu" : ! T3 k- Y [, r$ j
echo "今天星期四" ;
& Z6 H" P. q) x; \3 r, C! Lbreak; 6 e+ ]4 U% A( R, f/ }
case "Fri" : 6 R0 V: P, A$ T
echo "今天星期五" ;
( }( ]+ p5 @% vbreak; K0 P$ I) E2 d2 M3 E h* \
default: 7 @/ L) j* l% e1 G( o+ _4 V1 R( I5 R
echo "今天放假" ; 4 I' b* s$ d" n/ z/ F! F
break; ) f( u+ D, N% z* f* ]1 e3 O
} 7 P4 t$ q! ]* n% X1 b: T
?>
' [% k6 l8 v' d# Q9 L, }& ^这里需要注意的是break;别遗漏了,default,省略是可以的。% B0 x% [: z1 }' @- z
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
4 H& m: M) s* n- f% n3 l十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |