php的流程控制
) J w; B" a, }0 F, b/ B o
$ [4 o: Y6 c5 H7 P+ f2 } @1、if……else 循环有三种结构$ V. q6 ~' N3 ~4 x* _4 Y: z
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 6 U4 h1 o& i/ V3 _; N
7 y+ R/ ?7 g/ `0 V! i1 }" Sif (a) { statement }
8 N& ~( W6 w" x J( M其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。9 r7 x3 o2 w* ]
范例:本例省略大括号。
% x8 i8 I8 b, y. d) D! J
! S4 W2 v* `3 W* ^' I<?php
+ ~3 f+ I" [4 J' W4 L8 Eif ($a==1) echo "我爱php" ;
! j" m) S0 f/ c7 T) `# c?>
( v0 S6 X# C, g& `- T- V0 A9 [# e. T0 P4 g
这里特别注意的是,判断是否相等是==而不是=。
9 t+ i, D+ b& |# V1 O$ e范例:本例的执行部分有三行,不可省略大括号。
j; m+ Y0 G# x% C) X( w7 r$ ^6 l$ t5 T7 H$ w! k& r
<?php
9 Q" } d7 m: bif ($a==1) {
- x% q$ d8 d( {* I0 [% K: l& Kecho "我爱php" ;
( F f2 _' c9 Uecho "<br>" ;
" @0 @: l4 t) G} ! _" |6 W, J5 o+ T3 s" |
?>
% l" }. z/ M" ?
% a8 K# z+ E U: f. }2 m第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
# u9 v) ]! {$ u' c) @
# l$ Y. k: E4 U7 ]if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
9 F4 }6 b& s) H0 g x: X9 ^$ v6 r3 l<?php - n& |) @/ R# x9 Y9 m
if ($a==1) { - x4 P$ T9 R$ @2 A0 P/ R/ v
echo "我爱php1";
8 ^" K& L1 S0 z- d# L' A+ V& qecho "<br>";
L* E0 w8 @! K. H}
# q( ~( ]4 |; L0 {8 g' Melse {. v) Z( f$ l$ {, M' F
echo "我爱php2";
* ]( l E1 M" v& {4 r/ Aecho "<br>";
1 I+ L( D: N @} % h8 d4 b/ N- u
?> $ D* K( U4 A* r$ G9 y$ h
! j8 B' V- x! F2 J6 i2 k J0 a5 s% m
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
& T( q0 m3 e' R; c9 U/ x( o8 M1 V直接看下面的例子
' n. q, Q1 W. Z" e& G2 V$ d: R5 y<?php . A, U. C$ j$ y+ ^" H
if ( $a > $b ) { - A7 P) R9 d$ r+ I! X+ {5 h% r
echo "a 比 b 大" ; 9 c0 x) L$ h% H! E3 `7 }
} elseif ( $a == $b ) { , X5 Q6 w9 h3 \4 N
echo "a 等于 b" ;
% q R/ W; @0 P$ j# l& n: Z} else {
7 x) Q, n- x: n- e) k# `: pecho "a 比 b 小" ; 8 d" n5 O! D7 X. R+ w& j& x
}
! X ^# e* w+ d4 t?>
: u. p; [/ M. F+ W) @2 ]
' I, G/ ^2 Y8 H2 {( k R8 D2、for循环就单纯只有一种,没有变化,它的语法如下 / F C; V+ ] ^4 B8 n0 K% o; y% x( J* X" \7 U
^; P0 Q2 t# E2 M# Tfor (a; b; c) { statement } . d' ^) Y; V1 [6 b
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
1 T3 w( n) n/ c8 m& w下例是用 for 循环写的的例子。 4 {" I$ S$ i' Y% J
<?php # j8 L0 e" M$ h, E. k( h: @
for ( $i = 1 ; $i <= 10 ; $i++ ) { 9 h* \2 g* m5 g% O) H% k' F5 z
echo "这是第".$i."次循环<br>" ;
) ~; g# H }2 F; Z, o}
0 l' i8 c1 o2 ?1 W+ g" l?> 0 y- @! v% N( o: {: u& c
& A4 N/ V) |, E4 {3 _
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
3 ]: p) A, b6 D1 Z, B( t语法如下:
0 P7 y' ?; w+ t8 \5 D1 ^switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
7 t7 k! E* X1 L其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 0 S( |% P2 ]1 u7 n8 Y
3 E; a% l$ F) n% a2 X+ X: v* Y<?php
4 m8 S( \1 V: Q. Xswitch ( date ( "D" )) { 6 O5 k6 c l/ V3 _7 W$ J9 Q
case "Mon" :
8 B5 `: [. n5 C) F6 {echo "今天星期一" ;
! M* x6 ]% I8 r* b) K& Nbreak;
1 r, }, n. i- t" c" mcase "Tue" : ' D2 {0 a0 m' g+ d; g9 G# u
echo "今天星期二" ; 9 L( l0 P' Z* {% X. x) w
break; 6 k8 I4 [1 i! k
case "Wed" : 5 p$ }, r6 S- ]- O0 m5 Q( p
echo "今天星期三" ; 6 v- i; M9 T1 p; L, F
break;
( E6 X1 C/ j" @1 c5 U1 ucase "Thu" : # R5 B6 G1 i9 T8 d
echo "今天星期四" ; - y9 w8 y, H3 ]7 m
break;
K7 ~, n( d! s; L4 q$ qcase "Fri" :
4 ~5 M0 r( U) s1 L, a3 @9 `echo "今天星期五" ; & C/ B2 D4 `0 d% U; g
break; 8 u3 g. e1 y5 Y# G4 [4 b
default:
" g" A* k0 _0 O* @echo "今天放假" ; $ v" _9 {9 O+ n1 w
break; ' |5 c$ e" f7 n" R* v" q9 p
} 8 d3 m& U0 f4 r0 Z3 [) y# B
?>
, b5 g" H8 x+ U* \8 a* D2 m这里需要注意的是break;别遗漏了,default,省略是可以的。
* }) E) D7 p0 F* u1 @很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。7 a% u3 O6 W( y" ~ x4 c/ p
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |