php的流程控制
$ a U: i4 p; J6 ^* o( i
! @2 I1 g+ Y& f& K4 N4 \1 Y* ?7 m2 F1、if……else 循环有三种结构
! W9 a% `. d1 i _& T2 M8 X7 H第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
) g+ z. S" y4 b& y" t! \
: w. ~4 {# n( c- f! ], zif (a) { statement } / S$ M2 P9 b# J; M2 V. ?) s
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。8 S8 r/ ~4 [- d$ r/ {
范例:本例省略大括号。
! D- L) L: B( V8 f* z1 R% _
! @2 N' D$ O+ R' T<?php 5 _) l/ k7 j6 R" e; l% ^
if ($a==1) echo "我爱php" ;
5 E a/ s4 L9 C+ w?>
& O/ t* u9 |) y# q. m `% K3 y1 {- l6 z* b+ y. w# |
这里特别注意的是,判断是否相等是==而不是=。9 J/ ]% e, r b8 B- @
范例:本例的执行部分有三行,不可省略大括号。 , \- \' F2 x5 t& _# E
" w# W* z8 A: H1 D8 i<?php
; M# c; X, l7 N% v" _if ($a==1) {
1 [. e2 l. P$ `. ] N# zecho "我爱php" ;
4 a0 t* d8 g- `: ~echo "<br>" ;
0 O$ B; Q7 C) ^, p}
& P/ v' B# j1 W- `1 H?> ' Z, x4 `) `0 F
! n7 ~1 Y: `" H. \3 ~
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
2 ]$ v7 R3 a9 g" N& N; Q" O% u( T% w$ o* c' h' d
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
, @6 P* H. \/ c: c' z<?php
( _* v8 i; _7 k: F$ t+ Gif ($a==1) {
/ j7 t6 G: A+ L1 r6 Q5 ?( Cecho "我爱php1"; ; {9 m/ ^& X% _6 D/ z' v: r
echo "<br>";
( {) [: o5 ~& Q8 n}
" W/ |% e8 }5 Celse {* Q/ Q& q8 _5 V. v; y2 n/ {, g
echo "我爱php2";
; [5 c9 r- G6 cecho "<br>";
/ H" S9 }! q2 Z5 U7 v; s} . J* T2 d! ?. [6 x
?>
3 W! i$ W8 x) o u4 e& D9 G2 i6 g; }) H+ q
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。 S+ X T. a) L4 M8 U, M( e
直接看下面的例子
" Z0 I: H& r! g# D7 i<?php
5 v% p/ x6 z8 k& Q' ]' Bif ( $a > $b ) {
& M; p5 y2 k% Z- u7 d: ?0 U! Iecho "a 比 b 大" ;
* a9 {! ?& f3 k5 {} elseif ( $a == $b ) { 6 C2 B/ w2 G, ?7 Q
echo "a 等于 b" ; : N2 r! _- t9 x0 o1 D
} else { + a( e7 G, X& G) \3 t5 B% L' V. Z
echo "a 比 b 小" ; 2 a; E- d$ B& k9 ?2 E, \
}
) j* y# N8 C$ M?> ! R2 d# W4 f5 c
7 q/ [- i% t' [
2、for循环就单纯只有一种,没有变化,它的语法如下 " g+ R# \+ I$ g! b6 Z% ?
! {" v0 I- b) e4 }for (a; b; c) { statement } - z# ~8 P T" p) N+ @
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。. e. q7 s+ U- b8 ?+ h4 \$ v
下例是用 for 循环写的的例子。
0 g1 Y# p& K# ?<?php
# e& D B9 ?' C) o' J0 r% p K/ nfor ( $i = 1 ; $i <= 10 ; $i++ ) {
7 {3 m( `5 W: U- aecho "这是第".$i."次循环<br>" ;
8 Q# E0 \7 H! T% L0 j+ N1 b2 w} / g% H( ~8 u6 c; W( N
?>
2 [6 k& e4 \" x1 g# N" S* g# p7 w' E0 `# ]
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。/ r- j3 U: K" I S
语法如下:
6 U0 V4 @ S" Y$ }7 w! Rswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } ( [1 v2 c4 t. e& t
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 # A/ A5 d% x- P1 j" { O4 D) u
/ j8 [/ v2 R9 Q5 G3 I2 }
<?php / v4 R: }3 D* E$ }
switch ( date ( "D" )) {
: ~8 r3 v! v7 \2 C4 Tcase "Mon" :
$ a. @% e% l4 r: n" ?: gecho "今天星期一" ;
& Z u" w; K, {, Cbreak; + A/ R4 H& i0 C; N
case "Tue" : 9 i! y. ?7 L9 R. F
echo "今天星期二" ; ; ] S* G4 i) w3 a/ v6 K, X; y4 d
break;
- y4 y9 V, g8 i' Q) K" Ccase "Wed" :
8 \+ J9 g; |, a8 w' ^. d" Q( h* Hecho "今天星期三" ; 0 g% S# }1 o1 H. a7 y) g: s
break;
" d* m* j5 X8 N" x5 j/ x/ scase "Thu" : : }. V% l! g% J) | I3 e8 l6 D
echo "今天星期四" ; L' Y! P, E& w9 [
break;
1 R5 N2 _5 _7 g- Acase "Fri" : E* r x6 g# ?9 v; Q
echo "今天星期五" ; $ ]) M" V6 X) L4 E2 m% ?0 ]
break; ' `+ S s$ P3 T; h8 e: B1 R" L4 t
default: " ` e2 |7 g0 [3 p* Z# T4 }2 w0 G
echo "今天放假" ;
; V' g. v0 r3 @: w) {break; ) E: p( J! n& P' b( k* {
}
! [8 C, Y# ~0 {& O?> 0 N; i' U4 X9 U( G/ g
这里需要注意的是break;别遗漏了,default,省略是可以的。
7 R: A0 v- a, l) I$ h很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。5 [2 n/ a) j+ D, F3 a X. J2 c9 o. X
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |