php的流程控制 7 Z$ l _; m! ]0 r6 n
' ]0 {7 m0 j9 {# s1、if……else 循环有三种结构+ ^- P- {8 b0 a* ?
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 2 b9 S8 W; h2 q
[/ ~) }7 z) Z4 u% Wif (a) { statement }
% c0 ~+ q h) l( o7 n0 `其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。! P; [+ [/ }% l9 ^$ J9 p
范例:本例省略大括号。
" `" g5 ?( N7 Z% l. O8 S8 `, W6 w" c) r
<?php
, v! j$ L5 I+ H1 t1 Xif ($a==1) echo "我爱php" ; % d3 E4 |' @8 a
?> + H- h% _( X, {/ q+ ?$ u
8 ^+ K+ b* @6 z$ n
这里特别注意的是,判断是否相等是==而不是=。
7 _5 P& _- o% h9 {范例:本例的执行部分有三行,不可省略大括号。 / T& z4 T8 s8 r
2 e4 l1 ]# P8 ~% {9 ~; h<?php 0 V: {1 }0 {5 x2 P8 w1 w* Y
if ($a==1) {
: K! m* q" o. B: A; Yecho "我爱php" ; ' {* X2 u* D. [; b8 c
echo "<br>" ; 9 L9 b, J; c. a% a r0 P
}
& t( ?0 t. K& K* c) M7 G y?> 8 U" h& r) a v( Q4 O
y" e1 q3 j& J' w( u x# c第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
. f8 `3 x+ i7 O% \2 A% l/ @
( O; T- D: [0 {% f/ qif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 # A, V% B# G" f6 b( ]
<?php 7 S; F0 s7 l' I- `/ j
if ($a==1) {
9 }, g% g$ ^# n0 l6 Necho "我爱php1";
; L1 q& s7 l4 F$ I9 v3 d' ?8 N/ P3 E) Vecho "<br>";# H6 i& x, W7 R" x0 n# i
}
5 [2 V% H% d$ Welse {
% s; t- W! U1 v6 T9 Wecho "我爱php2";2 r& F7 b" S6 }# \! Z5 Y, W/ M
echo "<br>";
: f/ g5 d0 o0 ~} 5 {8 S, O/ h g, n
?>
1 J. R! Y2 A6 ~; s. i& ?% M+ ?4 _% f
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
( m9 U2 v! Q5 Z/ \/ T直接看下面的例子
8 V3 l6 k5 B/ H$ q2 L<?php
3 G& j4 d$ @6 q1 U6 W O% ]6 {if ( $a > $b ) { , V/ q! {1 O, g
echo "a 比 b 大" ;
* p3 g3 }- J$ ~5 P$ a( L} elseif ( $a == $b ) {
$ a) n. Q4 [5 d1 _' gecho "a 等于 b" ; 8 T- A+ Y: @7 c
} else { ( ~/ G; m8 X$ E+ U/ I+ v$ g
echo "a 比 b 小" ;
9 w- o1 @& m, f} . B; A/ I! f W0 e, k8 }3 T% X
?> : N0 _7 Y5 d# W, \
8 B( c9 F: k, z5 E9 D2、for循环就单纯只有一种,没有变化,它的语法如下
" t4 {- E$ Y2 G9 I. q" N; H6 u0 a: w
" e: Z8 G3 j' U n* Afor (a; b; c) { statement }
5 N% k1 r1 t, ^1 ~' U. r其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
. b* O, b3 [4 o) P下例是用 for 循环写的的例子。
+ o* w! T1 I- v) z& `$ W' x# S+ t<?php
% z0 D& y" r* P$ w7 ~. K+ ?for ( $i = 1 ; $i <= 10 ; $i++ ) {
) S% D2 f& u. q; k8 g2 Hecho "这是第".$i."次循环<br>" ;
* h- Q4 y" o3 I D} / b! m) e+ B6 {6 z3 v, T
?> ' |$ s: X! f) I$ K6 h
/ t1 V5 C1 `( q3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。8 @ F8 G" `! {1 l6 o7 \) N
语法如下:
5 C5 Q* Q9 i/ jswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 0 S0 W1 m! ^ A+ E/ l/ x/ V
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ! u% B) _" B# F
% a/ Z" M+ G' D; X! n& ~' f6 W2 `<?php
: V x' J% _1 c' e1 u# Aswitch ( date ( "D" )) { : q/ C8 t& E; I) v+ n
case "Mon" :
% R& ~9 Y1 p# v! necho "今天星期一" ;
' @3 T" x! A. N1 sbreak; ! s5 Z& i" R% D
case "Tue" : ( V9 \* |- `. k0 r( p
echo "今天星期二" ; " X/ l' [+ O' U0 _; |
break;
( m% S/ u$ S4 ycase "Wed" : ; U- @3 x/ [6 E
echo "今天星期三" ; 5 [; K8 l) y; S
break;
2 n' s' Z% m! _) d5 n$ zcase "Thu" :
" j/ S; c' i% H; G0 vecho "今天星期四" ;
- z! x8 i6 T. d) {& Nbreak; ' A6 P% D e# J* j
case "Fri" : - R& L$ \) ?+ t" q8 j* a) v
echo "今天星期五" ; $ R; T) N/ W% I w* L
break; ( U8 k( }. |: W/ n T
default: - D' w% ~) ?+ C* g& I6 I6 M
echo "今天放假" ;
# X- Q. p$ M% d+ q2 m+ Jbreak;
- K, ]0 b( S9 n/ w} 3 M/ I! R& O) i" r7 f1 N7 H1 ?( T
?>
& B( c/ l, M9 \这里需要注意的是break;别遗漏了,default,省略是可以的。
. ]$ }4 s' l; n4 ~很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
# e: |' R) Q9 S& A9 D! Y ^9 i+ Z" O十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |