获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第二天

php的流程控制 7 H( Q. m6 ]; N% q) s

% L( o5 L! N4 o$ g2 K1if……else 循环有三种结构
7 |# L5 q- b/ T
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
2 M# r# O, x+ i2 p3 n% o; w% X5 r+ l
9 K* x1 I" X- `) {2 eif (a) { statement }
1 R" p; ?9 A1 f6 s其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
0 `0 d2 q" X% Z; A" Z
范例:本例省略大括号。

: L5 ?7 T* u  B3 l+ ^
1 V( a( w& }! e0 k4 X  @( E<?php
! d! Z0 e  g( x, f4 I0 t8 _if ($a==1) echo "我爱
php" ; 2 \! P4 }( S2 E$ r$ `8 x' L
?> 1 u& l2 R; Z/ O+ E. a& V
* a' L5 D% k# Q" `9 F2 h
这里特别注意的是,判断是否相等是==而不是=
  F( s' w3 B: |# J1 d
范例:本例的执行部分有三行,不可省略大括号。

5 _* f% g- l* \6 F5 b7 I+ t( Z
- `% y' S7 p# j! Y% u' ~<?php - ^, s0 i) N9 m# }8 \1 b, E% w( {
if ($a==1) { 7 [3 x" {; B/ Z! F% B4 R9 \9 r/ Z
echo "我爱
php" ; ! R9 |" ^7 {$ p% I& g9 ?' |
echo "<br>" ;
: z. f: l) b3 P/ l2 z) i} 0 ^# B, w0 V) j- s
?> 5 N4 b: t2 K* K% ^6 Z! \9 \1 J2 u
/ ?5 p, D* E- ^& \  G9 k, E
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
0 R* N5 J6 |, J
+ P$ B) ^6 ?% W% N1 p( E; M" m
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
; |6 _- T: o. A# N5 P
<?php ; w1 f0 H+ {' V& h
if ($a==1) { 8 D+ \+ y9 t1 Y9 t! q8 q
echo "我爱
php1"; 9 _, a% |" e$ r, e/ Z
echo "<br>";" \1 E6 w4 A( h  K# q% }
} : g! t- T. S# t" K; }' J
else {' q8 o* F) E" Y1 K" d7 J5 _
echo "我爱
php2";) k  k! E, ?' M
echo "<br>";
/ u& [6 {1 U1 w# T$ b+ y' q4 q} 9 x3 K  t6 W& z- I" A
?>
- |3 d+ }( O3 o" L0 y! k& E+ f$ M, I5 ^( N4 k1 ^; S% M9 Z# H
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

5 Z' a2 w' b; t* }8 v0 K% G直接看下面的例子

# e$ Y5 b9 @! o1 U<?php
' z& ~' v3 g: I0 nif ( $a > $b ) {
1 Q* o* |$ N) S. r3 g3 @$ M6 T  \; fecho "a b
" ;
# [* R: w' U7 k+ ^7 ~* B1 d5 c$ a} elseif ( $a == $b ) { : O- N, w$ {  N" x& E
echo "a 等于
b" ; 9 A- V" c1 ~3 c# O: S) j) s
} else { / l# s  \+ A: U6 \
echo "a b
" ; ! c+ [9 s2 h. X
}   q6 D6 w( V5 r" k/ ~
?>
% w( s% z* q) I0 E. t9 S: _: ^, I, t9 i
2for循环就单纯只有一种,没有变化,它的语法如下

5 {3 x. C: E4 ~8 Y/ P3 _
6 K5 J* C8 D8 }9 Afor (a; b; c) { statement } ' }+ ]( ]4 L: I& }* ~0 R6 m8 p7 ^
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
3 \2 }/ I- ^# ~/ L& P
下例是用 for 循环写的的例子。
0 R0 t7 j; y$ s& t2 D5 i9 T; v
<?php ; w& |4 m2 g+ d$ R0 T
for ( $i = 1 ; $i <= 10 ; $i++ ) {
1 o6 P/ v; X+ |# b# N: i4 E6 decho "这是第".$i."次循环
<br>" ;
. h: C8 C5 W* y$ l1 \) D}
3 y7 p2 [' X) A# ^?>
$ C4 G( ~# c) B
0 o5 S' B: w: F" a0 F9 U3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

5 X; V+ E, v0 j& O语法如下:& h7 h# g, P; ]7 a7 O
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
' a5 F, m  A4 G0 W; c' b
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 % w/ A) W1 V! i1 A, z# c1 c  J
) x" l, [9 a' f9 M9 i0 ?
<?php * j# j; G  t% f0 Q9 Z- p
switch ( date ( "D" )) {
, h. y0 T+ R* I8 L# h  jcase "Mon" :
% B4 ]# H# q5 M" ^" {! @7 k8 Aecho "今天星期一
" ; # n" v: O, x6 h7 _% J0 K) Q
break;
9 ?* `: x7 ^. E6 @% T( S- G7 ^1 `case "Tue" : ! G  C; v# |+ v. N
echo "今天星期二
" ;
3 c5 X6 A- m+ [' X- Z( h( Mbreak;
% `: ?8 C$ a6 K' k, V( G( z4 ecase "Wed" :
: w; v% L% c. U& B$ `! D# necho "今天星期三
" ;   Y2 x, g9 }9 m2 `5 x' l
break; 0 z1 O: V' a+ |  u
case "Thu" : 4 b5 X8 J( K2 h" X
echo "今天星期四
" ;
5 r- W0 V; T6 U) xbreak; / n8 Q7 @) y) I, _* d* G
case "Fri" : 8 h' Z8 |; \4 _& g
echo "今天星期五
" ;
& I3 w6 z! t( A! o/ a$ {break; 8 B6 h9 B: S! I0 J
default:
9 u/ u2 ^9 j. V; Z8 _echo "今天放假
" ; # Y/ i) Z- W- V4 ]6 Y* ~
break; 1 O. Q9 U) `; _3 C$ W. D
} , D- ^, G( [1 n9 s, e  u# r& S/ t9 Y( Q
?> % {+ _, x; o' ~
这里需要注意的是break;别遗漏了,default,省略是可以的。
6 @7 [& Q# a: {$ k* w) j2 V& P
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
. T0 m, |; S' U! z" a2 t( v3 y
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

返回列表
【捌玖网络】已经运行: