返回列表 发帖

十天学会php之第二天

php的流程控制
( D- d& U" P2 N
" r1 a! u6 B) g* A1if……else 循环有三种结构
2 T/ ~: i/ u$ A
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ; \/ W: E9 m3 T; `2 _
7 P  ?; z. p5 _. }1 v% t: D6 o
if (a) { statement } + J  N! o, T" r, m$ H8 r' n* N
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

5 m5 n7 L0 O2 t0 k  G范例:本例省略大括号。

, F& j1 H( t- N# v8 A' b$ L4 M: W5 A2 l% f. V8 t9 x* \2 S4 z" j
<?php 0 V# N0 ?7 `: @- {3 b. G- p
if ($a==1) echo "我爱
php" ;
! v" r1 D5 y0 R0 t. ]?> 0 k: \, ^2 z7 ~5 G% J5 d+ Y% S# J
/ d; c: h: Y# v9 k0 O, D
这里特别注意的是,判断是否相等是==而不是=

+ Y  n' v* B: L/ f. g范例:本例的执行部分有三行,不可省略大括号。

: |$ I0 d) h5 T! S/ E4 q
7 m  [& I% ?! O: Z! k0 s( J0 Y- E<?php : V7 X2 T; M. m. g$ J# k
if ($a==1) {
$ i+ ~; j8 Y" \+ j, Z0 D1 aecho "我爱
php" ; + P1 Y" t$ z' A8 Y& z
echo "<br>" ;
  z% Z, G- K2 w- ^; P}
4 G  F- b% _1 K! m1 ~5 f?> & b) n5 A4 [- {& w2 ~& \3 X& N* f" [

  @" c7 H1 Y- Q" s' U' S) _* Z第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

/ ?7 j& q& |& t+ J$ H$ Z4 u. K- t5 ?
  j, z9 u; b1 tif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
; x; V) R7 x' w: T  Y$ s- l! z  |
<?php 9 p, [  `, w0 F, K8 U
if ($a==1) { 7 s' Y$ L; g- g
echo "我爱
php1"; ! ^! R+ [, A, s+ y
echo "<br>";
4 i8 ?3 O3 \: _0 @! Z} - Z: J$ e1 G% a" ]5 y. V0 a
else {
- J1 N. B! V. Z/ jecho "我爱
php2";. I( @- O( q. j  n4 _3 ~3 v9 m
echo "<br>";
3 J9 a3 G: H, {/ i1 K' r} 5 t4 U/ w5 ^4 ?) J1 p1 `  z
?>   T: S, k- R; p) i1 D9 N4 A! p3 d
# `4 ~6 R5 E. P: D; W% U+ x
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
# ~6 S; d; ^  n0 [. T$ D. P
直接看下面的例子

% Y$ C2 V9 F  I  V/ p<?php % B% N" U) q8 Y2 H* Z
if ( $a > $b ) { * \1 a; `& t! J+ O1 o& ^( |
echo "a b
" ; ! v/ O; y. q# [% U
} elseif ( $a == $b ) { % E: Y% `5 x' }9 E  ?' j  _
echo "a 等于
b" ;   i) g# o( ]' y, {2 u4 Y; R
} else { $ c& b6 w3 f7 G& H2 Q/ s) [
echo "a b
" ; # Z9 \$ @) U, j+ K/ Y" j
}
) b; q0 e6 L; z/ r?>
, q" {2 q4 m1 d
  p3 T) [5 W7 @3 x/ c. D$ h2for循环就单纯只有一种,没有变化,它的语法如下

* |, u- A$ n) E$ R1 C' |/ Z' K; k# p& M# X7 g& y
for (a; b; c) { statement }
3 T- L: x3 H2 h+ K& W, c$ O其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

! z2 B5 t1 m$ T( j3 I( X! W( L下例是用 for 循环写的的例子。

5 O: u* X* E, d4 i! r' E<?php
" f5 s3 X  c$ L4 o  _for ( $i = 1 ; $i <= 10 ; $i++ ) {
5 A- J" W6 M  U, n( |$ u6 Mecho "这是第".$i."次循环
<br>" ; 7 C& F$ Y- s5 J( h( `& @7 F
}
) J8 U+ ~$ ^7 Q& Z?> 2 S  R' b2 e# }+ @

4 i5 u# i. A# k. g. L5 `3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

5 z% X9 A3 B0 F0 T; g语法如下:3 [, T' v$ K* r2 w4 T' d+ G
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
! _0 c1 ^4 E; ]  F" `. P
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
) E9 Y0 D1 L* H4 H" V- o5 Y; m+ v: b+ E/ Q
<?php . {  ^! m7 N6 A0 I& B# j4 Z
switch ( date ( "D" )) { $ S) K/ t4 V- _" v
case "Mon" :
3 L6 G  v2 Y1 T- O4 s* m- \8 Iecho "今天星期一
" ; " F7 v8 |+ Z; k1 |" ~! g
break; * N; i$ ]7 |% c+ z6 i0 I- o+ D
case "Tue" : * [' K6 s; R; C
echo "今天星期二
" ;
! f& s, N5 O) I6 Obreak; , X3 Z3 l6 S& L
case "Wed" :
/ S: V1 D4 `9 pecho "今天星期三
" ;
1 l9 K! E" S: h7 E, M' Fbreak; : w1 r0 G. ~) L9 F1 ?  c( S
case "Thu" :
$ N! ]  k# ]6 m, \7 Becho "今天星期四
" ;
& `4 C$ v/ N, d& F* t. Sbreak;   H+ @6 A# m; b! v( o
case "Fri" : % ?- T  h& t( k% V
echo "今天星期五
" ;
/ ^9 F# I( H+ \. X+ kbreak;
* N7 i0 S  s& e8 T& [default: : N- q0 m; V' Y, U; w
echo "今天放假
" ; " u2 n9 v2 J7 {& J5 ^% m
break;
- l$ d8 V: B3 B6 h. C1 l} 3 ?. f, c# W4 n+ j) w) \6 S- l
?>
6 b  d- S6 N" d' u) O这里需要注意的是break;别遗漏了,default,省略是可以的。
! A0 z. c7 S. R& V/ a- x6 J. ?
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
- A7 Q; ?& q" w8 {3 e+ ]& ~
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

返回列表
【捌玖网络】已经运行: