php的流程控制 & ?( \' ^0 U" F. x/ Z8 O3 F, w" e
4 Y; S2 t: ^: j1 {/ @4 M
1、if……else 循环有三种结构
1 f# g% m9 R* }$ e [5 f第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 0 v" X# [8 I; c% n
3 ]& B4 J4 Y5 b- ^$ Qif (a) { statement } ! r) Z1 B. D; Y5 Q9 B# {) e" s
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。/ D2 u: i$ Z! c% l5 X: c, Q
范例:本例省略大括号。 ! N& U0 ~; j0 k" f& i( \2 H8 G
- n! b8 o# B5 ^' D/ @<?php
8 J" u# _$ `& x9 p) F. Fif ($a==1) echo "我爱php" ; ) } q2 F$ p4 ]4 A+ a
?>
1 S# D* G! B9 N: _- S6 {
/ C" ~& \1 n' s* l: \ V这里特别注意的是,判断是否相等是==而不是=。1 j m4 M3 Y+ W& Y3 |' Q
范例:本例的执行部分有三行,不可省略大括号。
: }) V# ?+ r/ K+ u( p2 c# d
. \' p7 N5 ]! R<?php / L6 }" K- q" k! W
if ($a==1) {
* \; w7 I5 M) |( N7 i" gecho "我爱php" ;
0 Z+ z, k* H1 E! i2 J- zecho "<br>" ; 9 t9 D* }5 i: F2 M& u/ Q7 u3 @0 c
}
% v3 \" R2 R1 ~$ Z0 M" Q5 a- s9 }" ]?> 0 \& D( [; e+ I# {6 _
! {7 ^% ~# `, L4 z: J$ ^
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
! u: m4 R) M" E
; {, ?: Y# [. z V7 s3 Pif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 9 }* e' r% g) P( @# R/ B; R! \9 X
<?php ( C. e. Z* H: }8 q R$ f+ b. A
if ($a==1) { 8 G7 N% `- }; n9 A
echo "我爱php1"; . N) k8 ?1 ` q( B! }8 _
echo "<br>";
9 }1 n7 W+ m) N; }0 p- o1 t}
8 n, e! v5 v- A5 q9 V$ y- xelse {! D# L4 u/ ?& J& z; I1 i
echo "我爱php2";( C- M: S3 g! {3 s2 F1 M
echo "<br>";
( V" D3 x" `( _7 D} 5 ?( s& T0 I, C; |2 N% b ~/ T+ Z
?> ( R5 R' b, V# ]* h
" B( T3 U: D @$ ^9 k
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
: q; S3 a/ W4 }7 _: f2 z0 r直接看下面的例子
# N" R4 `5 A6 T<?php 8 C5 ~/ m" L( L) p* V) E8 o! b
if ( $a > $b ) {
, i3 e4 ?6 l* c8 l3 @echo "a 比 b 大" ; , {4 f/ W$ z _9 O
} elseif ( $a == $b ) { + _2 O( s3 Y) @- Y5 U+ Q7 r
echo "a 等于 b" ; 4 N; m. i3 L# h4 @6 L
} else { # f' i7 U! z4 ~! U
echo "a 比 b 小" ; ; b) E* s. w6 w/ W/ v5 F5 A
}
& `! E+ ~, u7 L! |" S: J3 i" J?> , x4 V, G5 M* I
. Y3 L, o$ Z$ T
2、for循环就单纯只有一种,没有变化,它的语法如下 ! w2 f4 G% \0 H7 E
1 ]# ?7 m y, }for (a; b; c) { statement } $ l; Z/ W1 e* T4 `) M2 |3 ~9 h
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
& c+ b$ f9 n9 t- b8 E下例是用 for 循环写的的例子。 ( M O/ w8 W8 n3 }. _
<?php
+ B; `# K( C- W! Efor ( $i = 1 ; $i <= 10 ; $i++ ) {
+ S% P& I* R2 Y) j& T! b$ Becho "这是第".$i."次循环<br>" ;
( I- v V3 o, z/ G, `: ?0 S9 m9 N}
- R& O( [- ~+ b5 q8 _! r?> % Z& Y: v0 w. {4 ]2 v" m4 y
- H; B; N$ J! K3 }
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。4 [, X. i7 ~- t1 g, t
语法如下:
- S: p4 o! d7 q6 Z" \switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } : e7 ]% B4 a1 a, ~( N c
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
8 g/ E4 o6 O9 R# {, W
4 g0 C# ^) w( b4 ~3 J<?php ; e( A+ c1 ^' |
switch ( date ( "D" )) { / B7 O7 o7 T4 a5 I+ U0 ~7 y1 P
case "Mon" : # _2 }- Y. z5 ?5 T
echo "今天星期一" ;
0 t: U7 N& S/ c5 f. r7 L& nbreak; ) w6 n+ G7 f4 F- z2 X
case "Tue" :
, m; \; \ {( `6 U) _echo "今天星期二" ; 9 k; n% q; ?3 d. h+ \' H
break;
5 n0 u7 @. p1 E% z; W- `) S8 I# Fcase "Wed" :
& R$ H5 x/ \9 b4 |' ^echo "今天星期三" ; ' O% D+ ~' E' x3 ~/ }- E
break;
# F& |# c( n1 U8 E) pcase "Thu" : + U7 ^& `# m5 ?/ q+ M
echo "今天星期四" ; : W& b6 \/ f( v& y5 [6 Y2 x
break; % n, H. ~& u5 f+ w, J! s
case "Fri" : ( r4 `4 z( C7 w: r$ J0 {
echo "今天星期五" ; i5 d: u, B! }
break; ) i T3 ?! B8 W- U q! v! |
default: ' f5 Y7 ~7 g S
echo "今天放假" ; 6 j U) r1 p- O7 L( M2 K u" R
break; 5 p8 E2 @7 q' i- B5 l4 Y8 E
}
; Q% E/ V5 q; S& h5 J?>
, Y) m0 B: I; B6 ]( j这里需要注意的是break;别遗漏了,default,省略是可以的。
: r3 ?4 H/ p6 Q+ x& A, W很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
! x8 R2 a4 I& w" H* \0 W- k% D十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |