php的流程控制 . ?6 a! V; ~9 s- k" m- {3 x# X
7 |- ~! a9 k! s8 H$ g
1、if……else 循环有三种结构) O. E9 P! N( Q( F
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
2 @( |" I, E& [+ w: ]* R4 R4 t9 t" E! p# n' N6 n# c2 N* h
if (a) { statement } $ ]* y$ [" [% a2 Q) G: }
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。% P0 W! A1 s, d* @8 J9 I
范例:本例省略大括号。 8 G/ }; g4 f" |7 U: j1 r( F
( r S# d8 |2 p<?php
" v L! i/ Q Q" W5 Eif ($a==1) echo "我爱php" ;
& V/ L' Y0 g& P, k?> * s" y# V2 [1 t1 a# A5 `& @9 g
5 x1 a( i! `: e( x这里特别注意的是,判断是否相等是==而不是=。
/ n2 g3 ~& x4 P0 n' @: z范例:本例的执行部分有三行,不可省略大括号。 O" G+ A5 g9 ]3 P* N1 u/ |) T
* F" m7 J5 S7 C<?php
9 H2 Z& P4 W6 k1 J" Lif ($a==1) {
$ b6 i# `. N5 Vecho "我爱php" ; 6 u* s0 ~9 ~- A
echo "<br>" ; - G; w" `1 `% n' K4 g% p/ }
} ! V8 q5 w- R2 g4 G) m3 @0 n F
?> : m3 D0 V4 ?9 z- Y7 [' ~8 w
# F( R) M2 O0 r: ], H. s$ R3 H
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 0 E M. [3 j$ c) `
$ y( j3 [1 R6 m; L' r* `& `0 {7 H# }
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 ; h& W+ @- W: G7 z% ~
<?php
6 g) G& d% |: h- aif ($a==1) { 5 |* B2 |" x+ G. @5 n
echo "我爱php1";
( }' \* J; K# c8 V1 M7 I+ M/ f2 W1 cecho "<br>";
0 c. G4 U! Y! U}
+ ~% E# N% L: Welse {
( q( E5 b$ z5 p3 a9 p: \/ q) hecho "我爱php2";
1 E& Y* j% ~0 n( `( ~) J: }7 uecho "<br>";
! k; f! c5 x4 J: x' C} : l% Q/ e' n5 s3 z
?>
- l) ?1 n! t& [
. ?2 v, T& h6 }1 s第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。8 [. l/ m+ ?0 Y
直接看下面的例子
) C0 I- H4 G `7 C<?php 2 s- w# o8 K- H( Z: Y- B6 _5 J
if ( $a > $b ) { 1 b0 x5 N. G+ @/ J7 ~% T/ ~7 t
echo "a 比 b 大" ;
# Q! W6 W3 S! X5 M- K, J2 `; V} elseif ( $a == $b ) {
/ y$ f/ a' B! b8 m: F: `) Cecho "a 等于 b" ;
, e0 N) l% e0 `) x5 _} else { + C4 J% r8 t$ Z7 w* ?9 ?
echo "a 比 b 小" ; : ]( _7 Z9 k1 L% r
} $ h+ k4 ?; ?$ @) {9 h2 x
?> . E' r& \* t/ }; t) v/ P
* O6 g/ F L$ {5 Y( N
2、for循环就单纯只有一种,没有变化,它的语法如下 : N# ^7 y/ t1 n8 Q6 G/ n
- |. o- ]3 D+ ~% Z4 L' @) U
for (a; b; c) { statement }
" f7 s& t& ^* r: L其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
/ x$ k* Y3 c% }5 J0 @& V" m) P下例是用 for 循环写的的例子。 6 {9 m+ T$ s1 G& \0 b
<?php
- Z$ u0 U( B3 T( ~) _for ( $i = 1 ; $i <= 10 ; $i++ ) { - r# J$ ]8 v. ^+ P+ R. o* U) M
echo "这是第".$i."次循环<br>" ;
, G$ {" ~+ q! J# m! T}
4 _6 b* _+ i7 F?>
+ r3 g' ^3 I* e4 b$ }1 D* y ?/ t7 s; U; _ Z) N
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。/ L' i% _$ f$ j2 I9 s0 c }4 z
语法如下:
2 l) d5 [* m; S1 rswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 3 z( e$ ?& Z! S7 N! K/ e
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 / J6 U; J3 h4 |# T
5 d( I$ U6 E( Y( _5 T
<?php
. F; {' A. d) ]& n S7 ?switch ( date ( "D" )) {
- e* j2 h' i! u4 w& t0 d. Hcase "Mon" : + p( \/ y2 M8 ^3 y: d
echo "今天星期一" ; 4 Q [. C* \- L' r! Q
break;
, d" z* `* F' ]2 ^* B. U. `case "Tue" : G6 ^; U0 I6 n5 @) p
echo "今天星期二" ;
5 O: w7 Z* Q) m' K) {" i# \7 P: Ebreak;
& f& a+ g5 N* e* Y* Jcase "Wed" :
9 W0 K1 H3 c A' vecho "今天星期三" ;
. ?+ C+ B: E, |/ s* T0 Ebreak;
: h5 W F, C0 I3 Hcase "Thu" :
* h: I: |' i/ X' _echo "今天星期四" ;
* ? E* w+ a- ?+ zbreak;
6 S. Y( |! A4 N, N* Icase "Fri" : / @' s, L3 E4 }+ g( S8 _' W
echo "今天星期五" ; 1 }: K! b! [" C
break; 7 P G+ n. }5 N" a4 J
default: # V3 t+ w2 n3 f! \* c
echo "今天放假" ; 8 s3 R- Y7 I9 W; n# S2 y# t' w2 I
break;
" v9 w1 [% |: s& Q9 q# b}
5 K$ O' \* d3 y& Q- X7 W6 n?>
6 G% K }1 C7 c3 T |* j* g' H这里需要注意的是break;别遗漏了,default,省略是可以的。1 D7 m+ i' H% I6 l4 d# Z L
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。% T+ \/ P# k( y. N
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |