Board logo

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

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

php的流程控制
" u0 o. Y5 n* p, @9 ]+ k# p; g8 V- p/ M, b
1if……else 循环有三种结构
/ ^. q- z& }% P4 _3 ?
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: - I8 s/ s- M/ i+ w4 {1 s& G  a
3 a2 i5 I# D8 g1 Y8 Q; u
if (a) { statement }
) y, N2 {1 S$ h- q7 I' X其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
) E' P0 S; p! u$ n
范例:本例省略大括号。

% k+ z. m& G: j  z  }: u# `4 B% ^& c5 }
<?php , ^' Z+ m3 A& r! K" M9 [% J
if ($a==1) echo "我爱
php" ; ) Z* q, A1 Y% M" `& Q& R% e; B! ~
?> , l3 b. z& h# v) d
$ j: Z3 X8 P  @% w  s# r
这里特别注意的是,判断是否相等是==而不是=

4 ^) p$ [* p  i: o; l# {范例:本例的执行部分有三行,不可省略大括号。
% }1 F3 ^( s3 v8 B9 L

8 }% F9 M7 U5 ^( ^+ i- {<?php / i5 l* b! u4 b- \. s- U0 u% x' H
if ($a==1) { 2 n+ l* }! N$ _: |6 t: A+ v2 m
echo "我爱
php" ;
! @$ ?3 u/ `; X8 H/ q9 Kecho "<br>" ;
; M/ z  t: e* c}
# `% U& h, J9 G$ E( V?> 5 y- z/ r, h, Q3 D) L1 I6 i' [
: |& h3 T5 X8 K+ g
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

8 k. W9 h3 O5 ^  Z1 N" V, P  m. G
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

+ ?7 X, E: r; p8 i: D# `$ N" a% M<?php
6 f! y  h+ P) ?6 D! Jif ($a==1) { 1 i! r! V5 ^3 b& M' {
echo "我爱
php1"; 4 y" A' M6 K$ X/ _- V
echo "<br>";* v; v- F) c+ K% B
} / F& l5 X4 O2 J' N3 f( q+ X
else {9 w) E0 @3 S9 l8 k, `; w2 Y; m
echo "我爱
php2";
( h! i" ]; h2 @3 `* w9 @5 T. Lecho "<br>"; + O) _2 ]8 Z0 p- z1 z( e
} 3 O6 O9 N0 g6 m" I( P4 y7 W
?> & X# F: c: \6 u8 r
3 A4 R$ K$ R# |- ]& U
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

/ r2 w, ~/ C9 L) ?直接看下面的例子

/ x1 _; x7 ~7 U6 t, P+ F<?php
+ L( r0 D$ W. h1 Z' n0 qif ( $a > $b ) {
* Q) m' {. v% Necho "a b
" ; / X+ P5 }" h. w( a5 V
} elseif ( $a == $b ) { 8 _% T( X7 L# v1 e. f$ d. n( B# ^
echo "a 等于
b" ; & u' X0 |0 p- s
} else { / |# t6 A; R0 B* R( c
echo "a b
" ; ' Z  F: Q6 b0 B# S3 b6 ?
} ) T: p! _& U3 L+ _" O# g
?>
- @' B1 P% w# I/ d. K5 |8 ~/ D8 G
2for循环就单纯只有一种,没有变化,它的语法如下

) k. [0 R' O, j+ @" q. d
4 ^$ Z2 k/ L/ g4 ?for (a; b; c) { statement }
7 o$ t* F+ f) M( Q1 ]! V" e其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

; [8 @. ?/ T+ \0 `# k下例是用 for 循环写的的例子。

' H6 w% ^, W- H8 H6 N<?php
9 |; E# X% d8 m, {for ( $i = 1 ; $i <= 10 ; $i++ ) { 1 Q6 p, V/ a0 K4 N
echo "这是第".$i."次循环
<br>" ; 9 N- X1 l6 ^, B7 ]
} 7 s4 B1 W- V+ ~
?>
% X& ?9 e( L- u: a. K
0 U# y+ ?8 N7 b$ L4 e4 ~. u3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
7 G6 x2 {1 \5 D' X. y# @; Y
语法如下:* z) W1 ~8 a. f/ D2 @1 i+ z% x* E
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
& q8 N6 O% }/ ]2 v& x0 a
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 0 w. F+ a' B5 L% n) e. n% M6 k
1 R4 I8 g( i) [9 j! @- X  a8 g
<?php - `5 |; E3 T/ C' c/ I
switch ( date ( "D" )) {
  @% \1 t4 C0 \: ]9 [- E8 ~( ecase "Mon" :
+ `3 E2 \. Z5 p: }echo "今天星期一
" ; " Y) ~2 P, d; p( l
break; 8 ~! N# f2 M' F3 K1 v  G- g8 a4 Q
case "Tue" : & l8 J2 x; u' ]6 z+ f8 Y* f
echo "今天星期二
" ;
: j' M7 n4 k  K! V0 mbreak; & K0 x: I! I5 H5 o  |6 E' z
case "Wed" : ; o: c: }! J/ H* O5 S2 Q: X
echo "今天星期三
" ; + `( z3 Z2 h$ y
break; 0 Y; O" p' u$ P; n
case "Thu" :
1 ?# h5 G5 q. y2 w( y' wecho "今天星期四
" ;
5 s7 ~8 O# P6 A/ gbreak;
! }$ R) Q) R7 E) ycase "Fri" :
! R. S% V# m5 L& }& u) ?$ yecho "今天星期五
" ; 8 m; `+ C7 {: F2 ?
break; ; ~* G8 \% f1 u$ r
default: 0 l4 ^6 u' L) V( e
echo "今天放假
" ;
' f$ T2 S) a4 E5 Z* F7 s! S9 \. dbreak;
6 B* M5 a% n. ?, @9 x} % {+ b) Y5 b. q7 N" h6 [6 g. A& Y
?> , W  U$ v) x. R/ G/ y) N, U
这里需要注意的是break;别遗漏了,default,省略是可以的。

3 x7 a5 Q0 Y; r& e8 P很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

5 R& s" Q# H# i5 |( ]十天学会php之第二天就说到这里,第三天开始说数据库的使用。






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