php的流程控制
, h) d6 h; ]2 ?
, d0 q* M9 g1 K+ {' F1、if……else 循环有三种结构" F- C' y$ p2 b! Z+ x
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
$ f. S" [- _: j, l8 ^
9 {2 C; P4 c4 Z( yif (a) { statement }
1 N2 k& ?; c4 L; e7 ?' @* b其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。9 _) ]! E- n6 |' F
范例:本例省略大括号。 $ X+ L+ m$ j- D; k& {9 f
" ?! ?0 a/ n% F0 C" K: y<?php 2 ^8 h8 F# R% J& I/ c
if ($a==1) echo "我爱php" ; / H, b2 `/ B* t7 u
?> ! {- I* p" N8 B9 q2 `) B( W' X6 _
5 H( |* y# t' F这里特别注意的是,判断是否相等是==而不是=。: |1 L/ \2 W+ W6 o
范例:本例的执行部分有三行,不可省略大括号。 + i% M8 A2 z0 q$ @( g) q
# `8 v# \& u0 h& [9 T, G<?php ( S3 {2 |; f. g, L- k4 A
if ($a==1) {
' N2 z/ F; @5 t/ {, p, _3 [echo "我爱php" ;
0 F3 S( O4 V/ a1 ` X( A9 V; Iecho "<br>" ;
1 ^' U+ U/ N% t! q5 c' n} 3 }8 O. b0 i; t1 ^7 ?' |. @
?> 8 D" ? x5 \, ?4 z5 D% f( j
3 L+ ?; C" X: Z
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 2 Q* w( ^. D' y
1 V8 v) J. ^3 n0 @3 q+ z
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 8 u( q1 d( g) t+ j1 N9 m* `
<?php ' L8 c9 j# N9 K: f
if ($a==1) { 0 A: ~$ a' Y% f7 Q
echo "我爱php1"; ! g6 b% h* q" C( R9 R
echo "<br>";0 Y9 `9 N, s9 O% k% K" l$ [
} # a" z L- _8 w
else {
" O/ T4 ]" G/ }8 u p# L. techo "我爱php2";' y" p; a2 S5 |( v; T- E/ T
echo "<br>"; ' v `/ |3 I7 V2 }% `/ E5 ]6 [
}
1 N% Z2 K$ I4 h# \* o. k?> 1 \) M. d& f* k9 P- ?7 l
6 z' i9 K6 q8 j( A( [/ l
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。: ?$ {4 M3 U4 y' E& S: N
直接看下面的例子
6 K! o0 q# s+ J$ u# ]<?php
7 c' L, R1 Q' W4 l+ t0 ?9 e+ n! Fif ( $a > $b ) {
/ h% d6 S. A& ^2 ~% iecho "a 比 b 大" ; & [" b) J; _! h H: b3 e+ W3 j7 ?
} elseif ( $a == $b ) {
& d* b9 Y; C4 F! D' m1 ?/ l8 wecho "a 等于 b" ; . Q" c" A7 y, P$ F( z
} else {
) M( T) ?8 V0 }2 e) O* Zecho "a 比 b 小" ;
( l/ c* f5 ?' _3 K; J+ s1 w}
5 e4 c6 e. q9 T$ t, a. h?>
/ t9 n8 F! A& M- T( T- o
6 r2 v' n$ S4 J2 q+ w0 r9 X/ u! z2、for循环就单纯只有一种,没有变化,它的语法如下 5 a0 Z+ k# }. C L
; u5 z( o& O3 b; Y
for (a; b; c) { statement }
4 u H; y/ L: n# K8 J) r其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。8 b# g: S o/ ^* {) s1 I+ E# Q+ B
下例是用 for 循环写的的例子。
3 x$ Q3 M l2 {; _6 @( }<?php
2 F' ~4 I( y) v; U; rfor ( $i = 1 ; $i <= 10 ; $i++ ) {
' @1 Z. @( w& zecho "这是第".$i."次循环<br>" ;
# h6 i b6 b, [ d} 5 U* d/ e% H/ k( k" _
?>
/ E4 w: O' k! H& K* q7 h% F
" @! Z8 q3 c6 {1 a3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。& G# ?7 t7 _- m; N4 U) r
语法如下:
3 j1 c* B3 `1 h: Eswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
R% y7 n9 D* K+ a其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 $ V6 j: I$ _$ I; ^. ~" V) M
8 p# d4 ]0 B5 h* G* N
<?php
2 l& U5 j& F6 Z! H# f, Cswitch ( date ( "D" )) { ( U, Y6 U/ C6 I8 f7 w" }
case "Mon" : # K' [# d; W# Y) N) Y( `
echo "今天星期一" ;
5 T4 j# X% q( ubreak; 4 c: M) n6 R. c" f* b( A5 o
case "Tue" : / W. o8 s) A8 e C4 Z0 [% R
echo "今天星期二" ; 6 t; S& L5 y) i7 {4 W9 v2 f9 O) E" d2 V
break;
) X1 U5 F+ n/ R3 u- P2 [case "Wed" :
/ e5 U7 T: s( t2 Y; X& \echo "今天星期三" ;
% G5 o4 G% g2 ^; wbreak; # M1 p0 W* |. \; ^
case "Thu" : 4 t, e' X$ ]% z$ Y* f7 B8 @6 O7 j' M% K
echo "今天星期四" ; * K I7 j9 p3 l" [7 c6 v7 n
break; & D$ v( f' l% `- g$ D' {9 Z8 b
case "Fri" :
% `$ V& `, W- V6 {echo "今天星期五" ;
5 l; y( p' i9 K6 Cbreak; # w0 K, j8 e" l# D0 O0 F0 z/ P
default:
) b" U2 y) ]# X3 m) {5 aecho "今天放假" ;
' c) u# I0 {( _/ l" Gbreak; # _' q( u2 z& n: b
}
# S8 v4 C' c. V0 x?>
+ _3 M* G$ x5 d/ }7 }这里需要注意的是break;别遗漏了,default,省略是可以的。
& j6 e4 s! i$ N$ s( |; g很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
9 C. F g) q; K8 T! y十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |