php的流程控制
7 v% D7 @7 v {$ ^6 a+ K1 Z; e8 H5 ^/ U+ S; e
1、if……else 循环有三种结构9 \. e8 ?5 T* _9 ~/ Q- Q
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: o- N& V4 m, e& _9 z9 W' D# T, g" m
$ i6 s) h" l6 lif (a) { statement } 9 D. \+ G( D' }& f
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
* \/ g4 N* H6 R4 {- ]2 L6 k/ [范例:本例省略大括号。
: [' q3 @3 V: N) q8 ~' l9 C5 C" s9 ~/ N# ?& K& Y' E5 H5 j
<?php
- i% L7 ]- N& i. tif ($a==1) echo "我爱php" ;
7 d* L2 W1 p& e1 X6 y5 Z% P6 X1 C! [?> 4 w5 M+ x" z% i; ^
$ s& H$ Q1 k" x这里特别注意的是,判断是否相等是==而不是=。
) [5 r' I( p, A4 `# Q; ^' B范例:本例的执行部分有三行,不可省略大括号。 ! ^( v4 ?! Y' P' j4 r# X7 n2 `0 U
+ {/ W) y* a+ \: ^7 L6 J<?php 6 {8 u& g8 T; G: E: t7 L& B4 W. }
if ($a==1) {
6 V$ B( e9 N* p. a& r* z6 oecho "我爱php" ;
6 I: W/ } D# ?& Q- Lecho "<br>" ; 8 s" H, W7 Z f; ]8 }$ Z
} - g" @! N" S& \4 W7 U
?>
; T J3 [/ v* x6 @- j
7 N) z& M1 J/ ~' @& N第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: 0 M. x X. }3 [2 o; z
8 L" T+ R# O* v+ n$ v
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
$ M# ^+ p% F8 T w2 u<?php ; _' z" _# F+ A' b; @& ]
if ($a==1) { 7 ?# M( ?+ \: Z; w: `
echo "我爱php1";
9 O6 u+ f7 ]$ Necho "<br>";
' x3 M( k0 \& C8 p+ Z' u4 y}
, ?3 n) D9 J/ ?* v, ?else {
2 P! t7 W, N7 v# Recho "我爱php2";
+ D* v8 }& Q4 E" Uecho "<br>"; ! N+ T0 b- v- E- z' H9 |
} ! v9 r& q& I* V* F' }' ^
?>
+ w8 ?1 w U! B" n' X& B
: X( f3 }% C6 D1 x第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
. A! e5 p: f: `$ a4 C( ^直接看下面的例子
. d. g2 y% N: c( G0 p: H: A<?php
) R) Y! Y* n6 f8 {* \if ( $a > $b ) {
$ }7 e: T3 Z' A& `& c8 X& _echo "a 比 b 大" ;
$ [' Y# O: w/ i( k7 u} elseif ( $a == $b ) {
: a- n0 R9 B& A0 d" Q$ X9 x$ A- jecho "a 等于 b" ;
. U7 G+ \% ?# C+ S+ N} else { 2 u4 C$ r5 E3 T$ P- X
echo "a 比 b 小" ;
9 p( G" g' l% N- G} . g; \( C$ M" }) ], L1 b: l
?>
N) u' D/ _6 n8 d% V' l$ r/ }4 @. g: d8 w2 Z/ J" B5 G+ ~" ^
2、for循环就单纯只有一种,没有变化,它的语法如下 ; M8 I4 o2 g3 b5 _" O c) }8 X
( }# q' F: B$ G/ ~/ q6 r" A8 N/ p! y
for (a; b; c) { statement } 6 z6 R5 V; B+ H* d" X
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 N) u: k& x p' U, h
下例是用 for 循环写的的例子。 5 A2 ]5 I& n8 z! p, B
<?php & S7 Y4 Y% b6 d' T& ~0 k$ L
for ( $i = 1 ; $i <= 10 ; $i++ ) { 1 t$ I4 W3 y7 b S
echo "这是第".$i."次循环<br>" ; 5 S; O5 B7 h% o- Y
} # ?- I o: A& b7 Q
?> & r5 j# N! \/ x3 S1 k0 A$ H
4 u$ [6 J7 A7 d" _( J* c
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
* A U: i t- m: Z语法如下: Y; T: D- Y+ W# ~7 o
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
! o( }3 `4 k) ^其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
* R" c3 _. K1 q9 @
f7 I1 ^+ t) J r<?php
" K9 v; K$ M- Fswitch ( date ( "D" )) { 3 @& a( _! Z$ l& r2 j( H7 X% f
case "Mon" : % E/ K% a+ Q$ m: Y
echo "今天星期一" ;
* Y& Y) x( j! d7 U3 T! u9 `break; # a: V, O- U c# a* y; @
case "Tue" : ; e: B# U6 ^; J, H2 l; K
echo "今天星期二" ;
$ q7 W/ \7 i0 m& E2 ^; Ebreak; $ I9 n& Y: V3 m' H
case "Wed" : . w) O8 J( \/ w- \& z' n
echo "今天星期三" ; 6 `! N/ c- ~( H. _; |% @2 F7 u
break; * J: l' d+ q7 H+ C, d5 u* R
case "Thu" : 2 }+ t( C& C" F" R9 V2 j
echo "今天星期四" ;
5 V4 R, i, h p% z: e/ Pbreak; & U* s. a; q& n: a
case "Fri" : " @$ ~2 N; `% Y1 }; S
echo "今天星期五" ; J7 G* N* N. J% h7 u* J7 R+ h+ W+ k
break;
% U5 |$ X' h2 P& u q, [+ ?+ E: cdefault: # ~; K {, u$ f! [, h# t- o
echo "今天放假" ;
& H: R" _8 _' w: \, n( t8 a% n& Ebreak; ) [. M3 P7 K1 Q, |9 i
} 3 x' a% P5 |! H# W% I
?>
1 t7 S, ~% I7 F" m0 c8 s# |* K0 g这里需要注意的是break;别遗漏了,default,省略是可以的。9 a7 y! L2 W2 f
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。! n/ N* w7 U* e4 e$ u
十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |