Board logo

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

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

php的流程控制 0 R: P! ?$ r! {6 f8 a$ b7 B
0 `. b  v2 n7 Z! d0 `
1if……else 循环有三种结构

( @: R! r3 J" O6 \8 m6 h第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
# `! _, E* z2 V, c' u0 a/ F$ n2 }, T2 X5 L. K4 ?7 \% X$ r
if (a) { statement } 4 n$ L$ h( m+ Y& _
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
: y8 ?0 S7 g3 a5 b! y8 h
范例:本例省略大括号。

  t/ C& {' F; J4 D3 j# C2 s$ C4 S0 s" R+ ~5 n3 O% w/ l# V
<?php
7 O! E+ q. S! B- \. vif ($a==1) echo "我爱
php" ; 1 \; z/ k* [$ _- K5 \5 G, G. w
?> / [0 ]8 o+ r, l5 s  [
$ O/ R- n' I) P: s. y$ I
这里特别注意的是,判断是否相等是==而不是=

9 o! `' M2 {2 ~/ B3 b& M范例:本例的执行部分有三行,不可省略大括号。
3 u3 d. K  y# P' a& H3 ]. b1 S. K

; k; I9 P: y0 H<?php ) l- v4 ]/ K, T: w
if ($a==1) { / F& w- g; `/ @( Y  N$ ^
echo "我爱
php" ;
$ k  ^6 s6 x$ ~  Xecho "<br>" ;
3 c" R: K8 Q2 V- }7 N6 x5 i7 r2 H}
) ~" {) e. B( w?>
* O1 @" m  }0 ~. k. f+ P" j6 A; o8 \! |* u; S' G: z  W
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

$ T7 u3 r7 M- O& Y% u" N6 d" }+ G/ N) |5 O: s; Y0 p& }3 H0 q
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

" l$ L+ O$ ]  @<?php 5 K* M0 ]4 u# v0 H
if ($a==1) {
4 g' T6 L1 u- Techo "我爱
php1";
; I( z1 f( @1 ?: Jecho "<br>";
  z. m: p- o/ \9 w0 v6 e6 Q2 e0 Y}
( H) `: ^* z) g4 d6 Oelse {* p- q+ i7 E; ^$ G7 n
echo "我爱
php2";
! h9 M7 x+ _* uecho "<br>"; / g6 Z2 P" R' \1 g) Y
} 7 ?& D. v' l% z4 S3 M
?> - M$ V- a2 |, h& v
& D- d! ~2 b+ j6 K; o
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

# E& l' I- K) K: A! v8 @直接看下面的例子

# M$ R7 A% L% V<?php 6 X" [: r' P* O/ G
if ( $a > $b ) {
. m$ s! K! d1 [3 m4 L  I' hecho "a b
" ; & T; T( v5 r# }' B+ w1 }0 `
} elseif ( $a == $b ) { # n) B- C, P! W/ J1 [: {" y
echo "a 等于
b" ; : ?2 G; ^5 g$ W3 M% \
} else { 2 w$ ~) k$ S+ ~+ g7 j; b2 v
echo "a b
" ;
$ l4 I8 N: h& P5 [2 \  C} ( b: k3 E$ e! i3 V% b/ r
?>
7 A! s6 l! G1 a8 l4 v( ]# C/ w5 K, O  e
2for循环就单纯只有一种,没有变化,它的语法如下
1 W9 u( e1 X9 _* E4 Y/ t# J

8 ]: G. e7 |8 J8 l# ]; R% vfor (a; b; c) { statement } & h6 A) d0 D/ l
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
" U2 b) [. o+ J
下例是用 for 循环写的的例子。

) A& f7 b$ O( H1 g1 F8 q( B, w# U8 g<?php ) ]3 g5 H0 D- `- k, X1 e
for ( $i = 1 ; $i <= 10 ; $i++ ) {
; t' b2 K! }( ^  d9 S) k6 Secho "这是第".$i."次循环
<br>" ; - C/ }5 C* e9 I7 X' t
}   m3 t. d8 _9 r* E" |9 v
?>
, c* y- V- z# B( c6 A, L* z, D" s( \, r0 g& J
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
& d2 \8 D  d( U/ c1 }, ]0 B
语法如下:
- k' j4 |* n0 [# o& \1 }6 Oswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }   M' y5 l3 B$ Y
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 7 y, N1 ^" d$ ?! ]7 e( g4 A

7 c5 I3 C4 F' {! F<?php 6 b7 i) {( O) _
switch ( date ( "D" )) { . }- t* m8 \+ G
case "Mon" :
& G+ ~- C7 V' P5 y5 ~, [echo "今天星期一
" ;
  k- b9 n/ |! p  d* vbreak;
9 c4 m) {. b1 ]1 _case "Tue" :
7 ]5 B5 e# s) I2 Y. Secho "今天星期二
" ;
: E4 [3 D. a7 ]8 ]/ W! Xbreak;
. d9 H1 M6 d0 t+ H" l; Ecase "Wed" :
2 W: p- K( B: ^; M  Q4 Secho "今天星期三
" ; 5 O0 e7 P) _3 `( r' w: K7 z/ a
break;
# b+ P. U1 f5 a5 M) Ocase "Thu" : 3 z, b9 b. c4 W. H. ~
echo "今天星期四
" ; ! r( u, d' e9 u0 C% M: h5 n
break;
4 B; e3 t0 m) b. i$ {case "Fri" : 3 e. x* R! |5 L9 [& s
echo "今天星期五
" ; ( j1 q! T0 v$ c
break; 5 `& U. i7 O# ^5 ~
default:
7 t: e" c- U' e: z2 M# V, mecho "今天放假
" ;
( Z( J. S: d1 A3 d, t: zbreak;
8 Z& n5 G% s3 A8 S. R& X} - x* L: b! f. o1 e1 W, k
?> ; T3 y9 Z: d1 }
这里需要注意的是break;别遗漏了,default,省略是可以的。

( q9 s% I9 N6 P, {很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

* Q8 a' U8 O6 Z; G! N$ ~! P$ _十天学会php之第二天就说到这里,第三天开始说数据库的使用。






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