Board logo

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

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

php的流程控制 5 G* K* o* v8 v, y  d' `

( |* l) ^: E+ S- U2 I) M1if……else 循环有三种结构

5 X3 G9 A1 Q6 E+ u" F- |8 f( F7 y+ S第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
: z0 N+ R1 s2 C5 y3 v: \1 ?3 A, W+ ~2 |8 R% ?5 Y) |* |" O0 v0 F
if (a) { statement }
7 ~# c) P- K" Z* J7 H其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

  L6 ]2 Q! N8 p3 C1 j" q范例:本例省略大括号。
$ E# S/ D+ Y$ j, n& G' L$ n0 `
$ Z) u: c: x8 l* n; B
<?php
  r! _& @# @5 D' o' e8 ^, [. i* C+ ^if ($a==1) echo "我爱
php" ; % g! y, u. X" f- Z$ F4 ^. ^# M7 J. f
?> # L0 T; r" W' x# F' b0 j6 K
: B: h9 k/ @/ G6 p9 ^
这里特别注意的是,判断是否相等是==而不是=

( X) M! I" s$ G9 }/ \% B. t# @范例:本例的执行部分有三行,不可省略大括号。

- g1 d: J* s* p
" x6 A6 Q+ G  S<?php
2 d" l4 k" o" I5 y0 W9 k+ ?if ($a==1) { / A4 B( j: I0 l! c
echo "我爱
php" ; * ?* z2 @# |. t: D$ n
echo "<br>" ;
! {6 B' e2 `7 H}
9 G# R1 M7 g- Z* }?>
. {1 q+ N- e. _' i  j4 t: ~" |& U& m. E& H
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

* d3 w/ E$ d  J9 d! S& x; X7 }
( l; {6 v. u& ^$ d, b! @if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

5 b7 E; x( j) U( {) q% T8 W: w2 f<?php
( ^7 i( E  p- X. ]# vif ($a==1) {
" x: `' j' v5 t" n; Iecho "我爱
php1";
/ B) `. k; X: x' r5 T; Secho "<br>";
9 T* k/ }0 j1 {% h2 {7 V} ' l2 M' w4 M5 H3 U8 p, Q3 _( x2 U; w
else {
7 e& Y7 z6 C$ G8 |1 ]( Mecho "我爱
php2";# E; W4 x0 \' C8 G4 E' x
echo "<br>";
" l5 ~, Y9 [, a$ X* c. g! u' h}
. J6 F; Y5 `" _4 R% W0 i% {! s! k?>
$ V  v- W* x1 _- v8 s: f
2 W: \6 g' I# X* A2 x5 J! o第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

- p+ n  b! J4 L) [6 r; L直接看下面的例子

; e; i# b% Q6 u# ?7 W2 s<?php 6 P! K/ @  E& D6 r; k
if ( $a > $b ) { ; P' E& Q9 w4 D: g, e
echo "a b
" ; 3 L5 {3 Y2 ^* L$ S  a
} elseif ( $a == $b ) { - J+ Z- }' n" `
echo "a 等于
b" ; * _% j4 ~" _7 `4 B
} else {
9 i( X' ?% }( Techo "a b
" ;
' b! z' r, O( t( q" V' D}
( t4 x3 M/ X, a5 i?>
2 V% l7 L5 r, {
' ^: i  A( |, k1 B& u2for循环就单纯只有一种,没有变化,它的语法如下
7 _: q- C* Y5 p

' f, U6 i: }. P3 Z1 _9 kfor (a; b; c) { statement }
# }1 w2 H0 G* z( v# u, _( W5 [其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

/ l( x# t2 c: C0 K9 x- S' T( y下例是用 for 循环写的的例子。

9 c- o+ c2 ?9 n" v+ p: O<?php ! x5 N7 t, J, z+ B! i
for ( $i = 1 ; $i <= 10 ; $i++ ) { 6 j$ y$ H7 I' i# w6 M
echo "这是第".$i."次循环
<br>" ; ) Y1 W1 x2 N% N3 a6 n
}
* J1 ^  v4 f4 _( C; Z?> ! Y' X5 W1 N) S

5 n) w/ Y; N4 z6 m3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
! R& a5 P! P. ?: o7 z
语法如下:
8 i# ?# _; X& e& |switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } 0 n# @6 ]' t1 u- f$ v# P( B
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
, t' @7 s# K1 l# K$ y+ f0 \$ F+ r- {, `: v, I( L: B% X/ `
<?php & k" z" e6 e5 o6 D8 H
switch ( date ( "D" )) { 7 T" \9 n9 a1 ]; \. y- E+ x
case "Mon" : + b! ?, @. p& ?* Q
echo "今天星期一
" ;
+ D# G% L3 V: _break;
- m( [. N  }* hcase "Tue" :
0 f0 [( ?7 A% \) yecho "今天星期二
" ; , C) P: L' F5 \0 h
break;
: F+ r. k- _1 P) t. O- v: q5 p/ Ocase "Wed" :
1 d0 V( J  b# g6 r+ n( jecho "今天星期三
" ;
  T$ c" ?% v  o4 @* A  Y' C8 y0 Rbreak; # x# V* i9 j- r" e
case "Thu" : 9 A# K: `6 Y7 v( I1 {; G# R
echo "今天星期四
" ;
" G; |4 x  T- L% n# pbreak;
; |& z, k  B. Y% Xcase "Fri" :
7 Y: u" s0 N$ ^+ `echo "今天星期五
" ; + J) [9 w+ l. h. }! V
break;
1 O, D7 l* p3 Z9 T( M, {default:
$ v" [7 ?5 h0 Q1 kecho "今天放假
" ;
% D4 G0 C: y, Z5 m- V8 P- Nbreak; 6 l' }8 O/ a( C1 M
} ) [' Z6 Q( w; U- {/ d- y  s
?> : t$ j* A5 D/ N1 Q% u
这里需要注意的是break;别遗漏了,default,省略是可以的。

  w" A5 x/ C3 n很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
8 Q: [8 z& M% K) K' I
十天学会php之第二天就说到这里,第三天开始说数据库的使用。






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