php的流程控制 ' D! o+ @; C4 {( x9 t9 _& f
|; {: R7 D R2 M' B) S1、if……else 循环有三种结构
2 V2 V8 W6 m, e1 v/ O H$ T A第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
0 J: w5 j4 }4 `, [6 o- m
! |4 C* d8 l+ F% @if (a) { statement }
\8 p+ w9 ]) w( \/ S, w# w& M& |8 E0 w其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
& S9 X9 u9 n+ G; T- o/ `* v) J范例:本例省略大括号。 5 M4 j: p: W% m" t7 s# d
3 O* Z* B Y5 A- _6 S6 _$ w7 o
<?php
2 K( k: E! m! r$ t7 F6 V2 {$ rif ($a==1) echo "我爱php" ; 8 p/ ?/ g4 C9 N- U5 H2 }: i/ l; k
?>
- J: Z. F; j# J% H9 u( k8 e1 ]1 O- r% E, F- ?. X0 ~
这里特别注意的是,判断是否相等是==而不是=。
% H% K5 I+ s% h+ _2 C, `范例:本例的执行部分有三行,不可省略大括号。 , V. }, c, r2 n# `' y
8 b0 m$ b- q( H+ ?! q
<?php 4 a3 e! ]+ f$ W/ n; f2 p
if ($a==1) {
( ^2 m( z4 n$ d$ ]' becho "我爱php" ; 2 c [( Q2 _- }
echo "<br>" ; 2 Y, w9 T: Y& A6 {9 I
}
# Y; v* E: Q9 \) S% d4 H?> 0 B5 y8 @# H, m. s
4 r, y7 s/ t! \4 l! f# |% c) S第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
$ E+ I6 e4 z: ^3 X7 d6 u
) M* N- y7 ? R/ X- A* @# [1 J6 T2 mif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 . |5 g0 q! y0 E1 x! `3 q# V; N" Q. K' f7 C
<?php ; w) O* {9 z5 N& g% U' |0 U
if ($a==1) { ! Q0 r5 Y9 s& ?8 ^9 C- b
echo "我爱php1";
, A' i7 x; F4 u. H; @* }echo "<br>";
9 p7 }! D) D3 b" A} 0 J' U) \3 A' `7 y& G) h0 J% T0 k
else {
" Q3 |8 O* g3 [6 G( C4 ~echo "我爱php2";
' c3 R& `+ w4 a9 X$ f4 ^& m- Vecho "<br>";
# H7 }! L: h- X& F1 u} ' M; ~# D5 w5 T4 D7 @+ r
?> $ p! h( b& x1 m0 w. J; O' S
8 t, K9 O' i* G第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
% i- B8 G$ \! c4 g" G直接看下面的例子
S( f/ `) ` ^: w; T0 b<?php 7 r) v# L- s. n. a
if ( $a > $b ) {
( c9 \, A% B. q! M: u: Jecho "a 比 b 大" ; 4 W; l' c! M# C2 g
} elseif ( $a == $b ) { 1 v6 ]: j! @! G5 T; Z: e
echo "a 等于 b" ;
8 L1 d) W/ t% Z9 H$ }4 c# G5 g4 Q( u, o} else {
# ?) u, ^ h2 [ @2 Q5 Techo "a 比 b 小" ; : j+ c k% W5 B
} p/ }1 |6 ]7 O0 y% @+ m% A
?> - S+ L# m( O1 O2 L1 x2 K! J' t
7 m0 [3 @+ L! A& J2、for循环就单纯只有一种,没有变化,它的语法如下
( R1 I" J ?0 M, j/ A% O: F g% w1 s4 ]6 Y5 Q. q( i
for (a; b; c) { statement } 1 `5 a, J% q. [% `8 o0 |7 ?
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
) H3 q1 j6 C( J% m' {& e: G/ _下例是用 for 循环写的的例子。
9 \7 h" F* _0 q" y<?php 8 C, S; n1 S% L0 w& V. W$ B) @
for ( $i = 1 ; $i <= 10 ; $i++ ) {
" ^7 P& i7 a' D. C. I, iecho "这是第".$i."次循环<br>" ;
/ D( a0 D: [% @} + ]) l4 V% l1 g% e% j, @
?>
. |# K3 `9 K, B& x5 Y7 p& R# d. k+ g* C b7 x
3、switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。+ X5 z5 q, ]- N
语法如下:, I* E1 x( m: y' R2 S
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
: t' S* L X8 o6 z- u/ f其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 2 u& c* k+ \/ c# j& ~* Y0 a
% k2 V8 d. L* ]7 }# }
<?php
* E8 ]5 ] M) q& P3 c, B9 h3 |switch ( date ( "D" )) {
+ h9 f: z* l6 ^4 \+ j: w: L, P+ R% |( [case "Mon" : 5 c0 K% B1 |, y5 O
echo "今天星期一" ; 1 z! a3 j9 Z7 m2 i. I8 O& V) i9 {
break;
0 e6 \6 |/ i/ |2 Ecase "Tue" : 3 ~& l, i: X& y' ]$ B! R6 Z6 p$ @' C t
echo "今天星期二" ;
( W: E5 ~; x1 d! n* M1 Bbreak;
2 ~* {6 D2 C5 `; D8 t1 `case "Wed" :
) w) q, M! U* \2 Z& P9 B" Cecho "今天星期三" ;
; k" ]/ z- K8 v* ?, b [( c& {0 ^" h ubreak;
: O' q' e+ _ }* Y g) hcase "Thu" :
8 c5 s) R( B* z; y. Aecho "今天星期四" ;
$ z; E' v! Y$ S Xbreak;
, }0 v' ]5 W: a9 I9 X& E8 ocase "Fri" : . n: w* j4 K9 Z0 A( m
echo "今天星期五" ;
5 V. A- }' J0 _' J( c4 S! R# \break;
. M* \6 E* u7 z/ Kdefault:
; z, P, y! k) S5 t- \2 ^echo "今天放假" ; : A8 ^- O+ u! M+ P. g/ i& Z0 [+ \
break;
5 U9 D3 y. S; u$ n} . Z: C7 `( a# F
?> , u/ n% O6 v1 O8 {; \
这里需要注意的是break;别遗漏了,default,省略是可以的。0 ~% P I8 ]1 ^
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
3 s) N$ w. L- J2 S十天学会php之第二天就说到这里,第三天开始说数据库的使用。 |