php的流程控制
2 v7 y7 P, F, q9 o9 g8 E$ e
+ l* m3 j9 K: w9 o. k( B1、if……else 循环有三种结构
8 C% X4 x q# m+ Q! b8 k第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
4 S$ @: i* G! i5 @
5 R# c: @4 ]# Hif (a) { statement } " T6 H6 y- P0 @
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
% H( e% c% t, `/ l范例:本例省略大括号。
# `, e/ ?1 O" A
- |0 i, H' {! E& t; [# z<?php
. c# W% B# w5 @# a F/ Nif ($a==1) echo "我爱php" ;
3 N' r2 |- \" f( H. W% [?> 3 H4 b% c) E0 j2 Z2 x! T
o7 V3 f b# M6 M9 m
这里特别注意的是,判断是否相等是==而不是=。1 @9 R# k% G( a0 s
范例:本例的执行部分有三行,不可省略大括号。
: X, T" Q* }* T5 x0 x9 Z5 o0 C$ D B; T. I
<?php ) J* n+ f$ u+ y( p5 e& I. [
if ($a==1) { + m3 C3 _) A" t, P2 C
echo "我爱php" ; " }: ` D& `/ {
echo "<br>" ; 0 o1 v; b% R' C, J* e" `
} : q* x0 B' E/ B
?>
) @& c1 u0 W/ f
+ E* \' J5 d3 l! K S k7 ?- w第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
! t5 m: ^# B9 W- ~" q/ D+ |. D* H
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
( _9 i$ F6 w- g% C2 O7 U<?php
9 g7 B$ j- E7 u! u3 kif ($a==1) { 5 w# d/ _4 `% C+ B* D
echo "我爱php1";
5 Y8 D9 e* Q6 U4 K, t) x secho "<br>";* \. t0 }$ z# ~6 B$ M" U
} & O9 w5 ?7 _9 \2 w# ?: Q) }- G/ q% n4 A
else {1 K5 g4 H! x* d4 \- o/ G X: E/ I4 O; V
echo "我爱php2";
$ ?5 R" m4 r; f" b5 oecho "<br>";
T1 d$ n# D1 m# N; [} ! X9 s- Z$ V# s* n
?> : n/ d2 P& W( D+ c' u! m
. P2 p- U- v, V/ n2 o2 Z+ Y
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。6 n- j% x7 p+ m' H& ]- v
直接看下面的例子 / j& C$ L: q: t- u# i% L2 i
<?php
y( j# A2 ]5 @! w2 I5 ^4 Bif ( $a > $b ) { 2 d& Q. I$ [. @. T
echo "a 比 b 大" ;
8 `- T, ?4 `3 b) {$ U} elseif ( $a == $b ) { ( a- z4 K- H2 Q) S* F
echo "a 等于 b" ;
( W( u. i' b- c0 u} else { & ], ?4 g0 b* e
echo "a 比 b 小" ; ' Q) T, E5 N8 H4 H0 F) e
}
1 I9 [5 G9 m- |: i0 j4 x?>
3 R4 b* y; k) Q8 Y% j
T5 H7 ~( k3 H8 l4 R0 T( K5 `- K4 f2、for循环就单纯只有一种,没有变化,它的语法如下
% `" a4 D( t8 D2 `
+ I; H7 ]( K& H9 c% N: K1 Tfor (a; b; c) { statement } - |# o% O: U; n' y# M
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
+ x) i+ f) g# V下例是用 for 循环写的的例子。 ; Z! O$ b/ {# n8 n/ R+ ?: J9 H
<?php / a- c3 `; B8 g% W6 \9 m
for ( $i = 1 ; $i <= 10 ; $i++ ) {
2 A6 a/ k9 x' M! i8 techo "这是第".$i."次循环<br>" ; , X4 A0 G# v; ]8 k
}
$ j, t/ U8 X G6 R$ p* _) D d?>
5 Q7 o0 O$ D) Y5 z/ x9 s) S* N+ D% {, t
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
- V1 Z9 W. T7 ~语法如下:
6 p# G3 ^7 ~( Pswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
5 _6 ?. T, W0 x5 X# y" o( L其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
4 Y+ M/ ~& s! f* x' a6 C! M% ^ ^
7 G8 g% D0 F1 b% O' V* W9 [<?php
" H; N5 S4 X7 u3 ~. Fswitch ( date ( "D" )) { ) e6 e9 j) k' G2 I$ t3 U
case "Mon" : , d4 C; V0 H# `. @* G
echo "今天星期一" ;
: l! D; U6 R6 K# ?* fbreak; 9 W9 @7 R' O3 M( ~% s3 _! h
case "Tue" :
2 v' i' n% n: m6 ~echo "今天星期二" ; ; U. S9 R! [5 P7 R' a) l4 Y$ o- t O: ~ s
break;
" s/ A; e4 X0 x- L* j; I3 t+ O! vcase "Wed" : 9 O: K1 Z0 j8 ^9 W. t6 X8 |0 @ h
echo "今天星期三" ;
. |& S" B2 {! T! k8 L! [* ]- Tbreak;
" w0 \$ q: _, H$ J) dcase "Thu" : % M3 Q) j' S& K& ~4 q, f9 H8 v
echo "今天星期四" ;
5 K# D7 [4 A8 {$ B S( g9 vbreak; . q: o: m; q2 Y5 j- F4 p. Y- L+ |
case "Fri" : . \ a0 k9 M a- Z) o, l, s# X9 O
echo "今天星期五" ;
4 `" X$ R# @/ Y; ibreak; 6 }; n& b) i/ E$ X. Q0 W
default:
) I' [8 F. S3 K S$ h5 qecho "今天放假" ;
, B* a, q1 s1 n: R' q: @+ obreak; 2 M* Y* I$ N# {' B$ f7 g
}
3 B7 t: Q2 ^) n8 d7 [1 d?>
3 U% `2 ~# y: Q3 G0 J5 _1 l/ ^这里需要注意的是break;别遗漏了,default,省略是可以的。, e! U- v/ m J% q
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
2 |6 `* O: }* r8 r$ d/ S0 o十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |