php的流程控制
% g: l4 W' N1 J" k( \
$ [, m8 O% _8 D& y( x1、if……else 循环有三种结构
- q) t1 p B# Z: S2 M! b* h第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: , X( Y+ Q6 A6 @; T j( ^3 v- H3 E
. V8 i8 m8 o( q8 ~) z; ?
if (a) { statement }
' L& f: o" C- e其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。& Y- C' `7 i3 o J/ P
范例:本例省略大括号。
; }( Y# @4 {9 T4 M. y
# m* B# H& g6 O! f3 A( |<?php
' Y% ~2 y4 \$ L6 fif ($a==1) echo "我爱php" ;
# Y5 |6 O2 l6 d3 e7 D: ], y$ i?>
/ A6 {$ b! C& P2 u9 f4 q5 ]1 ]+ Q. D' T
这里特别注意的是,判断是否相等是==而不是=。
, N( x8 Q1 F4 J7 \4 d* x& ?6 `/ F范例:本例的执行部分有三行,不可省略大括号。
7 o: D: O& T$ I. A. s* g- h' m+ c. k: A2 u' C1 n- J3 i& S
<?php ) _4 v" Z e* a3 v' V
if ($a==1) {
, m% U/ a* @$ E e* c5 ] g2 S4 ]echo "我爱php" ; 6 A2 F: @6 i6 ?; Q h* G$ ^
echo "<br>" ;
: ]9 @# V, U% T# O: I4 ]$ O8 T}
( B( g/ e$ {* u- s( }2 k6 t) }?> 2 q5 t: C8 @8 {8 ]5 n
" [- V" Y7 B. t. s第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
5 }$ o! |! [2 I+ R$ F0 ~* d) m! Y6 s( H3 d, |
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 ) B9 h; i# w+ {! [' g
<?php 5 B j, ]8 ]" l( k' t
if ($a==1) {
% c! B' y/ r: ]6 Z" ] Aecho "我爱php1"; " `9 w0 x8 w* q x# q0 k7 t& V, h8 v/ o/ [
echo "<br>";( A7 x7 Z: }& v# ?# B6 E
}
+ {/ l- ]5 X( S' a% A3 delse {& u/ K9 E! M1 M, A
echo "我爱php2";
1 G; _& x' c% _! S1 S: hecho "<br>"; , I \- x' M& a) a; [* G
}
k) W9 f% a& O?> . S! Q* ?9 V* \: f5 y: U
0 p3 i6 [ j) r$ B. o' k) S( F第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
8 Q0 S& c a5 ^+ a2 Z. ~, b$ S直接看下面的例子 * A; w$ X% e1 y/ k
<?php
4 z3 ~9 f2 ]; D/ q. ?. Q* }if ( $a > $b ) {
* a: O- P% M& ]/ W5 ?+ Secho "a 比 b 大" ; $ F1 `$ w& O1 ^' L" D; r
} elseif ( $a == $b ) { / T' d- H! b) q6 Q
echo "a 等于 b" ;
# U2 _9 W v# D9 p! \+ |, C} else {
& N" v2 M5 [1 P6 ?echo "a 比 b 小" ;
/ m9 ?6 a& [- N} + P! b5 N% t( w/ _$ ]0 B( k! A, B
?> : l6 E* J0 V- ^* n$ u4 l
% E! g3 Y9 o# D A6 s
2、for循环就单纯只有一种,没有变化,它的语法如下 , l5 G% ^4 ^$ K0 {6 ?
2 p! L% R: j6 Gfor (a; b; c) { statement } 7 v3 R4 S, b$ B7 T. ^; ^/ Z
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。8 l% X; I' R2 V( m/ ~8 R
下例是用 for 循环写的的例子。
) t O, p* q& v$ S3 T<?php 4 r+ D( {: Y* ^; ]
for ( $i = 1 ; $i <= 10 ; $i++ ) { $ h( n9 l5 Y. ?
echo "这是第".$i."次循环<br>" ;
, \" e- }& o! e _9 R* T) v} # e w( Z2 j6 C* H( Y
?> . n9 j% g: I5 r" g6 O
) w7 O2 i8 i$ F' T! s' P2 Y: z) ]
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
7 I7 ^( C* h# R. @# U1 o语法如下:
b4 O. G7 I8 Z$ |2 l; @( o+ s/ yswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
$ M. w) X2 k% J5 \7 z. u( [其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 5 ]; H i( a( Z) [9 F; E' W
% ]( z1 M+ o4 b) w7 O! L7 F, d
<?php # v& r' ?5 J7 V+ ~( R
switch ( date ( "D" )) {
# y- c+ N0 H" ~0 F- q0 o- i1 `$ p, Gcase "Mon" :
, i4 E+ P8 H3 z( d* K2 P |# Kecho "今天星期一" ; 3 n! S+ {4 A3 y! s( N( H
break; 1 i3 |+ s7 _. [$ s6 F
case "Tue" : # T2 D4 u# V+ E9 A8 ?/ g5 j4 ~
echo "今天星期二" ;
( H4 B- R4 q6 O. {break;
3 ]( K8 W$ u/ N+ V1 M! Jcase "Wed" : / M. E: @( U5 t( ?0 E
echo "今天星期三" ; 3 j* b# V1 M' F8 M
break; 9 P( G' j2 |& G! r5 `6 c! w, _
case "Thu" :
# K1 L8 t5 `4 B! `$ Gecho "今天星期四" ;
{- q, w0 }$ I. ~- ~/ Gbreak;
$ [+ q+ }$ [- D3 _( y6 Jcase "Fri" :
1 I7 k% j( I, ?( S5 P0 Pecho "今天星期五" ; / @6 G' g6 O9 y5 G
break; : }2 g0 H' C3 ~ B: e# X$ t7 }
default: . j! k( z7 b2 s9 _+ s* \; i" D0 E
echo "今天放假" ;
8 M* U0 B5 |1 t6 q Jbreak; }, t& m9 t2 B8 c5 G; i
} $ I3 }' z$ f! e4 m
?>
! J9 l9 B: q% ~这里需要注意的是break;别遗漏了,default,省略是可以的。
* x0 T# F. |4 B" E3 X" v4 Q很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。4 ~: a% c& b$ w7 {# ^ T% {3 w
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |