php的流程控制
5 \. e0 B) R7 _/ R/ [/ w0 i/ k0 o1 g S
1、if……else 循环有三种结构) [# p3 w# W# f9 c* ^) j
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
; z9 u7 ~, i* C
, M. M! |3 r- {$ cif (a) { statement }
6 x2 D# a; d' X, }/ U! t: u其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
, g, Y/ u6 h; C' l: S$ f) a: x. w范例:本例省略大括号。
! c0 e* J' Z' s1 Z
: [/ K5 a" c' V6 |8 |" V* I& }<?php
' H H N5 F! @if ($a==1) echo "我爱php" ;
4 t- B. b" H6 B?>
2 Y, ~' ^2 g7 A' k7 e0 a/ k/ s- [2 ?2 B& O2 y/ i- Z+ V* D/ i
这里特别注意的是,判断是否相等是==而不是=。
' k6 G, @% _, z1 i a范例:本例的执行部分有三行,不可省略大括号。
% r. f: Z% h8 e' {4 b# `5 S' b5 c8 X4 r( ]3 x* l: M+ z8 F2 p
<?php
1 [: {$ h2 m Iif ($a==1) { , h, }- c& M2 q( b3 ^2 W. \
echo "我爱php" ; & n( S* V9 W9 R7 d
echo "<br>" ; " o: ?; _ H; a7 W
}
: c4 a* K+ z0 O5 k3 ~2 A?>
+ K. K' ^/ [: b5 l* ]1 H8 N/ e( q: P" Y
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: ( N0 n6 h+ m \2 }8 T6 @+ ]
' ?4 d6 y; \! w9 H/ L! p2 m+ ~
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
$ d3 z5 N( A! x1 T- f" @0 [3 R<?php
" {' q: W" p1 K# w2 p. M! w3 ~: Mif ($a==1) {
" W/ h* K$ E5 N1 Vecho "我爱php1"; 0 Q( W( B6 q. U+ }3 v% U2 |
echo "<br>";7 e$ s# ~) ]( N) a9 d1 `( f
}
9 i4 c7 c+ T E* Delse {' k, ]. I, X5 S+ b0 P, o* {& A( n/ }
echo "我爱php2";
8 `( a) {5 V& k5 Pecho "<br>"; * z+ A/ @$ f) h5 H. B# @7 R
}
) J+ y r/ F' Z8 S/ a! l8 k?> ( N8 @ S& J! Y& t
- }/ U& l1 x/ M第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
2 ^! W3 L+ D8 s) J F' }% N% I直接看下面的例子
+ E5 H& {4 ~( U3 _3 D<?php
- }" R) D7 S2 Uif ( $a > $b ) {
1 U: A# I0 m& V" u1 Jecho "a 比 b 大" ;
; [8 A. f! G3 n9 m6 [3 _5 e} elseif ( $a == $b ) { 9 J) d( L' n) D5 ?/ r
echo "a 等于 b" ; 8 |* c' ^2 j( `& t/ {4 _
} else {
- o R8 G. S( ^/ ^echo "a 比 b 小" ; / V5 [# M& T( |$ M7 Y
}
5 {. C1 G m! j3 ^6 F6 ]?>
' C- s n1 ]$ r; ?% W( a) x" g; P4 z7 U. _5 M( h M. s
2、for循环就单纯只有一种,没有变化,它的语法如下
& b& D, D) r, A, f8 j( Q6 G9 u0 q4 @7 E1 X2 D: C
for (a; b; c) { statement } & [4 t9 v1 R; X: A( j5 i
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
& Z0 |) R B' X( a& S9 O) S下例是用 for 循环写的的例子。
: P( w2 \& A) u9 n( N<?php ) p1 Q) d7 E9 q" r- q
for ( $i = 1 ; $i <= 10 ; $i++ ) {
9 t: {9 @+ S R3 e0 T3 Becho "这是第".$i."次循环<br>" ;
, {2 ]' g1 a% G# i} 2 a9 `- Z7 b0 }* \$ k9 _
?> $ _: R4 M2 z( t- ]; D' S6 s
7 h$ b" m- M" K; A/ X @
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。2 p }& T" h) S
语法如下:
/ J' I: O& H/ Hswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 3 t1 l2 t9 Y3 l5 o
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ' i' K$ X1 n. N$ K) l
2 I0 y V3 G: e+ W2 u<?php
/ h+ W. F& K& u9 eswitch ( date ( "D" )) {
0 t- L4 }9 U* D+ c3 P) h! [: ccase "Mon" :
; `6 X" G; X4 n0 Z, X Kecho "今天星期一" ; " S/ M; h$ m; n9 v2 @8 l: q# b
break; * T1 F% o" K$ ~2 \6 F: k) @
case "Tue" : ) f- c: p' K/ H, I7 n
echo "今天星期二" ;
& s" A h, z' e2 Nbreak;
4 F% R6 {) C; |case "Wed" :
S8 D8 a" p2 `2 m, R% y. X' }echo "今天星期三" ;
7 T( ^* F! G0 W8 bbreak;
2 _) s: \; N7 h+ ~0 w7 a. ^8 [case "Thu" :
2 h/ L( u# B8 W# J' a, O- secho "今天星期四" ; & P g5 y3 T5 l
break; 5 n' w' P7 M9 e/ k( U
case "Fri" :
* \" ~* a. n( _5 ~ }# z" A8 Z4 wecho "今天星期五" ;
/ j* W5 H+ A$ l3 D L$ ]2 e) o0 Mbreak; ( z9 [, I* y, o! Y
default:
' l/ S4 Z9 y; Y5 [! pecho "今天放假" ; 0 B* @# m7 J$ s2 w" |" l& @
break;
; V G: M! @# I+ a5 _' {5 k+ |} - _1 z0 P( [1 n+ K" p: F" `& X2 \
?> " ^" ~9 @6 x. m5 x8 e0 a
这里需要注意的是break;别遗漏了,default,省略是可以的。
3 u1 h/ \; ^/ L0 J2 _* p4 B很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
1 P, v( |& M L) n) `十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |