Board logo

标题: 十天学会php之第二天 [打印本页]

作者: admin    时间: 2008-3-26 16:36     标题: 十天学会php之第二天

php的流程控制
5 o, v9 J7 H/ I! p. Z
# c7 A1 {! I/ C+ z" M% X  O1if……else 循环有三种结构

  j1 @3 T: E. z& w6 z第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
+ C6 M0 t5 ~# O* b& Y+ U8 s/ B
if (a) { statement } & N, I# ?4 I2 y6 [, p  {
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
: w8 }7 h) o2 M3 \  J
范例:本例省略大括号。
  P' C: T& S$ q+ b$ L2 a7 F
5 `. |, Q& M2 m
<?php 4 l7 H2 c# ]- i6 |+ t8 R6 t
if ($a==1) echo "我爱
php" ; 2 I; {; z2 j; g1 q' t# ~
?>
$ D7 S% V- l/ s0 [9 j, e- @+ t7 G$ H/ r, g6 x& c
这里特别注意的是,判断是否相等是==而不是=
7 m5 d5 |0 R% {! z7 w+ n
范例:本例的执行部分有三行,不可省略大括号。
, s+ R/ V1 k! k: r* r

& o- k! w) X3 ~' D' p1 Q; Y( ]<?php 7 O! G) Q. e( z: M3 F% O' D
if ($a==1) {
( I6 e! E9 \- h  H5 K1 @echo "我爱
php" ; ; [0 o* @8 e( k4 I) k& i
echo "<br>" ;
7 B; O: W  z1 t8 o: K1 y}
0 ?( F1 T' a7 X; s1 H?>
  Z5 x9 _2 p# J6 T& K* H" V6 P" J# t7 s; t. S* \
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
9 L: ^/ [" B) A/ v1 K: c* ]7 s
) o7 V8 e0 a* R5 G8 z. [% L* {
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
6 ^* n( X+ U* T2 E( S' o7 P
<?php 3 v0 z$ W# A8 T" M4 l; u  e5 q( N" m: B
if ($a==1) { 7 c, Z, U9 n- P  f  N: z" J$ S+ j
echo "我爱
php1"; % D. i& O" ^* V7 n( e
echo "<br>";9 ]$ ]' B+ Q% g* N: p
} 4 k% U" c6 k$ v) Y' |5 L; U6 R% P
else {
2 f: d& p! ?" G$ b* Uecho "我爱
php2";$ B& a2 |0 P( z6 W
echo "<br>"; ' `# K" _2 D& ?9 M+ N
} ( w0 g; K/ a$ X% p9 h+ g
?>
5 \) C/ j. J# b0 H( ]# n
7 D" R8 D" [7 l. S9 \  L第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
. T) x) P6 \& J8 F9 f# P& z
直接看下面的例子
  s. ^+ x  V$ o  K! k0 A1 ~& |: N
<?php
: R8 H! r- Q, I- }, i" Oif ( $a > $b ) {
# J0 g8 D9 I- N+ secho "a b
" ;
/ s# k0 t; J  U6 ~} elseif ( $a == $b ) {
; }, E" a3 |+ Qecho "a 等于
b" ; 4 X+ s' l3 t5 ^' }1 h/ T
} else { / p1 p0 H- ~' h& k
echo "a b
" ;
- K1 B% D  |9 i+ b}
  `8 G4 }! l- Y+ R. g?>
0 _2 ]* P0 h" O1 o2 F! ~$ }# |/ L9 G; r: a8 r" V' \+ Z0 S: v
2for循环就单纯只有一种,没有变化,它的语法如下
6 l9 L- F. s# r' b  w, ]  z3 R9 _) {

6 ^5 B* ?- A' r  z% cfor (a; b; c) { statement } ; Q* U% u4 B) c/ E$ `& r+ p
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
! }# I" t7 m2 l+ M. G
下例是用 for 循环写的的例子。
: w* G0 e' D) u: Q: b) T. X$ \
<?php
- b) k; @7 i) O- e) a% cfor ( $i = 1 ; $i <= 10 ; $i++ ) {
# E4 D+ D1 p+ lecho "这是第".$i."次循环
<br>" ;   W( |; Z+ W% n& ]% x. _* N) p
}
2 m- i* ~: b1 M4 u?> 2 V. b/ I; e1 M2 N
) z- A% _6 p) C7 [7 e
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
6 J/ G' v% X1 ]7 E
语法如下:
# S9 r+ F' H( ]& E- s8 X8 t2 ^, Kswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
' v; o& ~0 Z( `$ s
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
4 D/ t6 N6 l/ j& C. z: D6 X9 h; S7 K, ?* K  s1 M
<?php
2 `8 q5 L2 I# K1 f/ u) lswitch ( date ( "D" )) {
. a! c1 m" o1 D# Pcase "Mon" :
' |$ p6 Q* t8 e3 j- N: Z: l- Jecho "今天星期一
" ; ! `0 T. O8 ?! w3 \5 L4 H6 g* r% n
break;
; x: M' U- [  ?( o2 }/ C. {$ ycase "Tue" :
2 ^) Z0 x) W1 L  jecho "今天星期二
" ; 6 a: E6 ]0 @. ]" V; Q
break; 7 \( W" |# w) c2 l3 E+ }6 \
case "Wed" : ) |; O7 B: k  }
echo "今天星期三
" ; - }  L; o9 P! ?; k, u* M
break;
, B4 M/ J- ?0 L* N4 h. t1 ncase "Thu" : % o  O# _+ T/ V% B: v
echo "今天星期四
" ;
" Q8 x# x! d9 r/ ibreak;
8 D, N7 S2 _0 m4 Z: f' ccase "Fri" :
- R; R5 M% O  ~  }echo "今天星期五
" ; ; c/ ?) `; Z* [0 @8 X. F; a; U$ Z
break; 6 h$ P# B/ z2 r0 M
default:
, E6 v" f) n/ C; n$ W* Wecho "今天放假
" ;
4 G- N. S! d% W6 p; Y  mbreak;
0 N( ~7 O3 R, m' q} 8 y, _% [1 \, I: k
?>   j3 I4 v6 Y! T' l8 n/ R1 p  a
这里需要注意的是break;别遗漏了,default,省略是可以的。
. y3 F/ R0 {3 c$ \( H) E; T5 B
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
( H, {& C& S4 b9 }/ P2 q( \& j
十天学会php之第二天就说到这里,第三天开始说数据库的使用。






欢迎光临 捌玖网络工作室 (http://89w.org/) Powered by Discuz! 7.2