Board logo

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

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

php的流程控制
8 H3 y* B, v3 K# Y$ o
# y5 {9 ]' N# L( ?, |1if……else 循环有三种结构

2 N* l$ J+ P/ _第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 5 B; C$ p. i5 Y: M, S6 o

8 j% K) y& D! I: ^if (a) { statement }
! g, h7 p# I  A2 j0 k9 ^* Q! j4 t- [其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
- A- {9 T9 A; \" C3 \6 O
范例:本例省略大括号。
. F( E( |% j0 M

8 G& G% f8 Y, l<?php 2 x+ ]+ t" ^1 h# K
if ($a==1) echo "我爱
php" ; $ J) F1 M  A; n' d0 E: Z2 P8 P# F/ @
?> 3 S( B! V. D3 C( X( }
+ q* C" J$ V  m
这里特别注意的是,判断是否相等是==而不是=
  s- R1 v8 P- `. ?: [
范例:本例的执行部分有三行,不可省略大括号。
$ Y1 V. z2 r' r2 x

9 u% G1 F& K3 ]1 I' }1 y<?php 3 ~' b, Z. F' }3 l/ d! ]
if ($a==1) { ' q! F1 \) K4 y' b: M4 w. X
echo "我爱
php" ;
; B6 b$ |1 g1 ?% ]( {echo "<br>" ; 4 k7 w* V* s7 T& g' ~7 l
}
  R7 G+ f/ h; u2 r: [* _' y1 O?>
5 x7 W# {) m9 e+ {
  y2 |" f# M) f4 p, _5 j# H第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

4 s) h- m! Z- q+ ]- w) z  x2 I$ g" b7 N7 T0 _( h
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
) ^3 l/ \8 X& C4 O! m
<?php
" }" e  K  J$ yif ($a==1) { . U9 F4 }: Y, R( Y) F0 D. w4 T0 B
echo "我爱
php1";
/ L" ^6 x: R6 H( z4 vecho "<br>";
( |& {0 ~7 M# H& S0 B( J}
* @. Z2 M8 p" b+ {else {- t4 n* T  X. @$ ?# B" s0 \
echo "我爱
php2";( a2 s0 u# P/ c+ O
echo "<br>"; # n& n3 g7 S  h' O/ Y/ `7 B
} 6 J9 N7 r4 x5 g; }
?>
( v5 k; R; q2 P% N3 q
  ^! A$ ~  R4 z, h- o第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

3 d% ?, {' n: R& w$ m4 e直接看下面的例子
  v; Z- x7 P$ v; [$ {6 p3 k
<?php
; t) K. j$ V- h5 e- Xif ( $a > $b ) {
  r, a" a  n$ g$ N" W3 Lecho "a b
" ;
2 H& ]6 [6 [5 V& F' x: N" g! Z} elseif ( $a == $b ) { & O& ~# J" i8 o* D; d4 a
echo "a 等于
b" ; / H! _' S. c/ {$ ^3 v0 b" ^
} else {
8 I8 H7 v1 G7 H0 _% \' j* H) Cecho "a b
" ; ' @9 h( }! m, M
}
" {3 T0 W% z) u?>
; @0 {/ d2 u2 a$ d2 U# s: p4 l# W" P- J% A
2for循环就单纯只有一种,没有变化,它的语法如下

0 [7 }! U5 P2 c  a$ _! L" t, i# u: [; N7 }! W/ I( O9 W' W
for (a; b; c) { statement }
- W" Y4 ^$ U6 u; P其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

6 ~2 h: w0 H: K下例是用 for 循环写的的例子。

) w  f! y& d8 Z& x! n3 S( y<?php 6 j  q5 \7 R: t7 t8 }; D
for ( $i = 1 ; $i <= 10 ; $i++ ) {
( b8 H7 v+ T/ R3 v+ recho "这是第".$i."次循环
<br>" ;
* w; p" _% X$ q$ @. f$ ^}
3 i- M, t* H- l. a% m: F?> ( R. P. B* K0 P  `

2 F$ C  d$ E% x( ?8 z5 `" I3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

4 q- E( Y5 T# {6 F语法如下:
8 M/ M# a0 V6 A9 i9 Lswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
  o. o3 F2 r6 I) c. U
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
7 P" i- p) y/ m$ l( K5 ^1 f! Y0 G8 K
<?php 3 D1 }5 Y: m! K" w5 }2 Z! v- A4 _) P
switch ( date ( "D" )) { 2 u* |. ^4 ^! q9 w) `
case "Mon" : ' ], L# `: D1 O" D# b  `
echo "今天星期一
" ;
! M# \0 L  K* dbreak; - i, i$ r4 U( _/ K) s, K* z
case "Tue" :
9 F0 }& ^- b( s0 |% E7 Aecho "今天星期二
" ;
) t, _  U9 ~" o7 _3 [; Sbreak; ) R8 m& M; |$ S
case "Wed" : " Q* E' ^8 E  B$ u
echo "今天星期三
" ;
( M* t3 q9 {. `break; & q1 x! H. D. C! w+ {
case "Thu" :
6 W  H9 k0 K5 lecho "今天星期四
" ; - t, O' e3 S8 R: o
break; + s$ q+ p! P- E2 q/ B9 b- h1 z5 @
case "Fri" :
- n. _8 a1 _0 l- ], Z7 ~echo "今天星期五
" ; & C# w0 K6 f# W
break; # P) R- v& @9 E  s6 w
default:
0 K; v0 x3 S% _echo "今天放假
" ; 8 k/ l; _( Z, `! x6 C
break;
+ q+ l8 w" J4 B} 7 o# v& J3 R2 q% ?# D4 b9 @0 t
?>
# }8 f% ?% G5 Y5 k7 h: C这里需要注意的是break;别遗漏了,default,省略是可以的。
3 u5 Y. }0 H! l; r! V3 o: j- i$ J
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
7 U6 d: w; D0 S( \& [
十天学会php之第二天就说到这里,第三天开始说数据库的使用。






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