php的流程控制
$ k, f S+ u+ F! D# q2 W( q" V- Z; \% Q/ @5 K! j3 l7 x2 w
1、if……else 循环有三种结构1 [1 x m1 P: ?+ z9 [
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
5 E- m, \2 A& S. Z z( Z8 s+ X( g4 ^- D
if (a) { statement }
( y0 w/ X$ P9 k5 ?( K其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。% Q- C) w7 J7 U; k% B* Q' a9 x6 |4 v
范例:本例省略大括号。 + t) h3 T! {- W& @
" H& u, B8 D3 o+ _) N. `) M<?php , G7 D9 u- n2 q$ c1 P9 \1 b& ?0 ?
if ($a==1) echo "我爱php" ; + A- c( x; T: n k1 F
?>
. q7 m! b. H. T" _2 e
, f( S( O0 y) r, Y, D这里特别注意的是,判断是否相等是==而不是=。
) n/ x# } h4 i- v0 w5 T! v3 H' }范例:本例的执行部分有三行,不可省略大括号。 * ~4 k W( N: l+ [: m
4 Z* i0 s0 M7 S! Q$ X7 X: }<?php * d C; m7 t8 U1 D9 z8 x
if ($a==1) { : X& c' A; t( r
echo "我爱php" ;
0 o6 B! s& q/ U# F; f: n% ]echo "<br>" ;
5 I7 R" Q/ Y+ `( Z& u, N}
1 u$ R7 |" b6 r& s) Q3 m; S?>
) C/ L5 A9 F: e( A' {1 J" I9 R& a+ R0 @/ O
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 8 T; K9 q- B& z i, |
: E/ l7 Q- T/ L( |# |if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
& G3 c {; }% q6 L4 ?( }5 [<?php
: d& {/ O1 U: Y j0 Y8 qif ($a==1) {
2 \. {' H4 _0 P/ F% z( `5 Cecho "我爱php1";
, R; y) @* u) _" F* X& |. `! Zecho "<br>";5 Q5 C5 G' f+ x* y! \. a0 C6 M
}
$ M. Z8 X7 y# L# oelse {
, [' t/ H6 s! K4 j9 hecho "我爱php2";
1 ~. b! `% M, X. V- cecho "<br>"; 3 `! b. r& a" Q" n$ I
}
" a: G, F5 p+ F. U?> : u% G& q; X/ }1 J# _! Q
1 B) D' S; D: F
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。* n( A( n5 ~/ u* V) y0 n* D% k
直接看下面的例子 . j6 J6 g5 ], h$ w
<?php
G3 a0 E- _) Nif ( $a > $b ) {
& c7 Y2 y R! Y4 n; f* Y" @echo "a 比 b 大" ; 5 E+ d1 U. \' V
} elseif ( $a == $b ) { # M* k5 Y& S5 X1 B' g5 w7 C
echo "a 等于 b" ; ' i; T" f/ O8 r0 B; Q' ?: d
} else {
5 x3 Z- r$ G8 Y: O" Z# @echo "a 比 b 小" ; / e' D: I o3 }+ x( h
}
" J7 d; @. @- S9 c( ]?>
% F6 U% B7 S! \. g, U
6 H. `7 x& K3 | t2、for循环就单纯只有一种,没有变化,它的语法如下 - `$ I* b- h9 H( a/ ~, w
+ s. e% P) V2 b. P% L0 b1 Efor (a; b; c) { statement } ; Q+ C% O& H0 |. Z- U
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
9 t8 Q. J% j0 ~+ g, n) \下例是用 for 循环写的的例子。
$ o& U% P- T6 ?- |$ c<?php ( ^! i C5 a" o% r7 \- E9 S! _( c0 w: ^
for ( $i = 1 ; $i <= 10 ; $i++ ) {
/ h7 D- ^" v& H X( eecho "这是第".$i."次循环<br>" ; , D) b3 C+ S% b2 }8 E; Q
} + S* f: J4 Y5 t. V# Q) V, V4 T
?> : c# U( O3 X L. \. |& S# l2 r' G. }- T
4 p7 ]3 M1 Z5 ~$ D
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
! u' j5 u. U F; U. K; S* p. q语法如下:
" E. K6 o" C' A6 T% B' z Rswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
, @" S4 V9 {- q# {+ {, N其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 & ?% N+ `; g2 z2 [
# M* z; K C4 R2 `5 a<?php 1 ^. G! K/ e2 y' M+ x6 e
switch ( date ( "D" )) {
# m: P; j+ ?/ O, A; x _& U7 Acase "Mon" : $ K- |- k# L* o6 v5 d
echo "今天星期一" ;
. e \, `# n, t7 Ibreak; # }; v" }. D! U
case "Tue" :
- A2 o9 x8 B; A) L, W& W4 g6 ~ Vecho "今天星期二" ;
! P, Z8 d4 x1 [! N# hbreak; * E6 O3 |# O8 u- _2 S
case "Wed" : & A- }+ r6 k% |0 a" T
echo "今天星期三" ; 8 L# r9 p1 y2 h1 S
break;
9 ~" e6 N$ Y; c+ p C( z5 ecase "Thu" : 5 J/ x9 f* Y# r: {9 x4 V- s1 v/ E
echo "今天星期四" ; 0 M0 u% g. d% Q5 J: z
break;
8 _! D+ ~2 A4 @" Bcase "Fri" : % R8 u1 W8 S0 E5 w
echo "今天星期五" ;
- b# a# f# c# ~& g1 tbreak; 0 r+ Y2 [! g; h6 [
default:
( N/ `0 T! N3 s' becho "今天放假" ;
7 w# ~2 W% |5 f6 s: Hbreak;
& |( s0 f9 n4 V5 R1 |}
J; }$ |# t* J?> # W9 L; K6 K1 d5 V% |: V0 H
这里需要注意的是break;别遗漏了,default,省略是可以的。
& h0 _" A r+ m2 V3 J很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。8 X4 f9 @: D- r U- T0 W" a
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |