获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第二天

php的流程控制
3 G6 O; E, [% D. S
: C# r! h& J- I% D1if……else 循环有三种结构
8 [, |& {+ N# Q, N: U  ?
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 7 P4 E+ F! P) U* \
: u% y& F& c) f4 ?
if (a) { statement }
2 A' W- o* U" B5 ~& B) a3 H其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
$ x! M+ h7 L% T. g* o
范例:本例省略大括号。

: D7 A1 f% L8 T# B0 `2 y. e
( D3 A7 v5 O: R3 V7 X4 |" |# R4 Z+ `<?php . b. H6 M4 e- Z+ T) |7 e
if ($a==1) echo "我爱
php" ; 9 d& Z9 b# w# k4 [
?> * l3 l8 D9 p/ k' U: ]7 V5 |. ]
: A" x: o  r, `/ v, o
这里特别注意的是,判断是否相等是==而不是=
! D; v2 g1 |2 ~% G9 V
范例:本例的执行部分有三行,不可省略大括号。
4 C; S- x3 Y. |  s8 J2 n1 G) r- Y
! ?5 Q$ [: C* i) i! i
<?php
( l% C% f  ]$ F! ]- v- Y5 Oif ($a==1) { 2 W8 C$ v- z: P. T, S" v
echo "我爱
php" ; * X4 z! U' l) H+ [8 R/ W! h9 K" R, f
echo "<br>" ; ! G4 U" t3 b: N5 v( |; I
} ! k/ O: r3 y/ j; x9 ~5 h$ {! r
?>
& c" Y/ i' M, i' U+ C( i0 ~/ v" D3 n& `4 ?4 |' t+ `" x
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
3 ^. q* I: h* I& Z
- i5 P4 O" A# Y
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
7 ~: ~, g1 i3 M2 M! k% j% m) f
<?php
; P3 i9 ~: e& A8 V8 g$ B7 g) ?if ($a==1) {
$ J4 O- {/ u3 Q. h, @# Xecho "我爱
php1";
# _( ^& a- I3 d- i- ]echo "<br>";# ]. Z% O5 f% m" J9 ]' |" \
}
( H# u- ]% H7 @+ W" |/ B3 Selse {
, q& K8 s2 V7 O2 N6 W6 q" x- kecho "我爱
php2";
+ r8 f6 n3 R1 m8 b8 w8 v( I8 O7 techo "<br>"; # N6 M' u2 h' l) G. z7 r- m
}
! j8 q4 {* c$ O" \: n! i; j?>
4 \& c* ^' t4 ^0 Q" M
7 p0 `, }' [0 @2 ~) w第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

+ j( b/ Q+ f" u$ Y' h8 P直接看下面的例子

7 f3 a, _- r5 z5 r# m<?php
) t' X. K* E; U4 J- J7 v3 E: ~" bif ( $a > $b ) {
4 y# u0 h( w4 ^( ?3 |$ Gecho "a b
" ; % t- [. Z  ], f0 X2 D: L1 [
} elseif ( $a == $b ) {
6 H  u5 n) h$ b% H+ Pecho "a 等于
b" ;
" W8 \5 L. M. O# W7 k} else {
4 \$ \! m1 u0 s% f, zecho "a b
" ;
8 b, j& C2 y  Q/ v' A  E) T}
  F- v' }. g0 P; m4 q5 J0 f?> : ]7 |( b( d4 e( `' q8 U3 ~

0 \' D' Q! R7 S- R) I- O2for循环就单纯只有一种,没有变化,它的语法如下
& [  u9 @/ Y3 I9 g8 B
( Q/ V8 v2 {* Z, t5 O5 Z" l( r
for (a; b; c) { statement }
  y# \0 c/ {/ u1 i其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
0 d1 O* w4 D, W6 `6 w! P
下例是用 for 循环写的的例子。
: ~) V2 G  r$ ~9 _% Y
<?php
! W: Y: C3 H+ Jfor ( $i = 1 ; $i <= 10 ; $i++ ) {
9 Y; O2 X. e: Oecho "这是第".$i."次循环
<br>" ; * _$ T7 ^6 ?- q$ x. R! i0 _
} 5 V  T" S" Y9 J6 K" @# Q
?> . Z( p- {0 ~8 D1 {- u
1 w( \4 H- G- e8 h
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
& Y! R9 [+ ~  m  }/ u, a& x
语法如下:/ R% |$ W, h4 H9 r; g1 F0 A
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
$ w* M' q; j/ e, Q' z& q0 ?
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
# o' W" Q6 _% A. e& c8 G5 ?- i/ `  b3 f
<?php 3 b, E4 T( W9 Z8 T. v" B2 v
switch ( date ( "D" )) { ( F' _- m6 m0 r4 C- F7 g6 a# b
case "Mon" :
4 E* s. T+ _4 m% G$ Cecho "今天星期一
" ; ) X# T# I7 q1 `9 g7 a# M
break; ( b  m3 I" {6 f$ `
case "Tue" : ( F7 M" Q( k% }: H: e8 y- u
echo "今天星期二
" ; 3 @8 V8 W; }0 ^7 Q) w4 p$ ?
break;
0 Q- c; z2 Q; h5 v8 y1 Fcase "Wed" :
8 ^1 ~+ a* v8 |- q# O1 }8 J% S- ^echo "今天星期三
" ;   r) W. L0 |- l, d1 C0 u
break; $ ]6 h6 r+ O% l3 p8 }( t
case "Thu" : 0 x; o, o, G$ P/ e
echo "今天星期四
" ; * f3 p, D' v+ }3 j
break;
4 K4 o( V, u4 P, M' i- ?case "Fri" : 6 Z* U1 ^# F" c6 q
echo "今天星期五
" ;
! r) k9 |' U4 C+ |break; 1 |) s: R; t: Q4 h0 k
default: 7 @$ L% j4 U3 C( i* ~
echo "今天放假
" ; ( x3 n3 S1 Y2 E+ J
break;
* h+ M) c- I5 G/ W} , G( ?! P7 e* p3 N+ ~$ \; K' _
?>
6 b4 U2 a% j/ t# r9 g7 I这里需要注意的是break;别遗漏了,default,省略是可以的。

" A/ s) J' R/ g' B) H# l很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
7 f) p+ i% [6 f7 W
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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