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

十天学会php之第二天

php的流程控制
! x/ _/ T* A+ @1 F; d* x# O% p1 h( Y1 L. `- V
1if……else 循环有三种结构

6 U' z7 A9 V6 T( {第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
) `( Z6 O5 c2 I8 K$ G' |' X
: y. A% b9 q  d1 e3 Tif (a) { statement }
7 S0 U" k6 B+ Z; C其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
! M$ G/ F) H% ?7 T! w: D) B# K5 F  [
范例:本例省略大括号。

" x- p* O8 c5 D1 ]* w- \- b. [* M& s) T8 [! d
<?php ! M7 ?! a% d& G0 a1 s, z! F
if ($a==1) echo "我爱
php" ; $ |5 Q# X% _9 \6 x) x
?> ; w! b: p% e3 n0 y: n+ k

  R7 n3 _; a, |8 R2 Y! T这里特别注意的是,判断是否相等是==而不是=

) J3 ]8 ^; s; X范例:本例的执行部分有三行,不可省略大括号。

' y* y4 [' l- ?) q, N) m4 i- Y9 D- Z% t) J9 X7 q0 Y
<?php ) r# W6 G% J3 x& E" y+ T6 L
if ($a==1) { 5 {7 ~5 g$ s+ D+ N& V
echo "我爱
php" ; # u! w0 ]7 s" |
echo "<br>" ;
$ I2 k% E# H0 {- W. ^  r* p8 t% X4 {}
" F! q; S7 q+ x2 c4 `+ w?> ! |/ @- c& a+ b6 T5 _# F* q# W7 C( J

6 t" ?( l3 z& p& I第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

+ z6 g4 @, G1 _7 A" s  j! w% g! K- j$ i! x+ [
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

! Q! a% h# A  d7 r<?php : w$ N6 G; ]  I- `' u
if ($a==1) {
' e! D8 Q# ^, e2 l1 u3 Iecho "我爱
php1"; , z, E5 ^5 X- ~/ h  I) F
echo "<br>";
* o; }' h/ g; D3 P0 x( }+ S8 B} # i) W' g1 P2 d( n, H1 l& B. x
else {6 e5 [3 {2 V9 o3 m) X
echo "我爱
php2";
- a; A8 Q0 `& X9 W* y, Q8 gecho "<br>";
& O9 ?) b2 u/ F}
6 i8 g8 d5 i( B7 J, M, D" s1 z- `?>
% I4 d* J7 p% O0 G: _- ~( k; w! I0 b# v- D/ _
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

$ k+ g% Z' \: P9 R/ ~$ y5 R直接看下面的例子
; [) |9 g; }; m* _
<?php
- v9 C' L: J; T. c: O$ iif ( $a > $b ) { . ?' v) k2 v1 P  y1 v* f
echo "a b
" ; & Z7 w/ }& r1 y9 g0 e) v7 j
} elseif ( $a == $b ) { * Q/ q1 ?; K& @3 j
echo "a 等于
b" ;
' Q1 D0 C% e4 Y- j" ]} else {
* y% ~0 ^& U- g) A5 e7 T2 Jecho "a b
" ; # ]. T7 Q0 Y3 e: f! a& m
} * M# n' {' p: g& g3 x3 }
?> ! q5 y/ h: @: o2 F8 w8 g/ F

" g5 t7 \# x2 E: D: i1 ^" }, \2for循环就单纯只有一种,没有变化,它的语法如下
" N: _9 D1 ~9 B$ ]( P; d
* k8 u7 j$ }1 X9 @% ?) w, F
for (a; b; c) { statement } + J) d* k$ a' g) r/ P
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

3 ~: z% O; w; D6 E8 o% G7 x" B* T- ?下例是用 for 循环写的的例子。
4 G) X% D, d4 z3 r( g
<?php
% k  K% T0 H" b9 C2 afor ( $i = 1 ; $i <= 10 ; $i++ ) { 1 x- `2 @- |5 x
echo "这是第".$i."次循环
<br>" ;
$ p; X) M8 u( y3 }2 z9 x}
0 {  z" [0 r- c?>
7 Y* H$ A0 h5 b) j+ c) s
$ l. j6 e0 x# u: J: P' y- N0 j3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
# {$ d/ V. C3 L+ N* p4 M$ Y6 {
语法如下:; q2 h$ u2 n- z, x8 A; b
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
' ^% h/ N, X% ?" D  n. H# g) C6 G
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 * i8 c/ o) {0 ?2 G, M6 R

# R, C2 G3 I, V5 a9 }<?php 9 V1 i1 Z7 g- @' I2 }7 W
switch ( date ( "D" )) {
6 m2 E" u) \, T* e  Rcase "Mon" :
, G2 O2 U, q2 [% \  Vecho "今天星期一
" ; 2 Z0 L5 _6 ?; o3 E* J6 [) W
break;
8 u6 ^, j6 n7 N1 i0 s: Hcase "Tue" : . t! T3 j1 R6 X4 J' P; w
echo "今天星期二
" ; ) v) e$ k& L  k5 M) s4 V% a" S7 X
break;
$ U; Z7 F  ?% {" N1 v5 G9 h0 X$ pcase "Wed" :
4 l; \+ F' W1 F3 k+ ^0 Oecho "今天星期三
" ; , |9 U6 N8 _) k5 A% ^' z
break;
- X- g1 A& b" @5 S0 t: ]2 i' Icase "Thu" : ! [, _* {! l2 d3 A$ r( f/ o! h* V( |
echo "今天星期四
" ; , S# W9 L8 @( |2 E, w
break;
  n+ Y* R/ O" A: ^case "Fri" :
0 @2 o9 H4 \: s) C, becho "今天星期五
" ; 4 |4 w( Z8 s6 P6 J. H
break;
5 Y( G" g, X" f& H7 n% w# l) U; edefault:
5 ^+ g8 t5 W$ d) N( qecho "今天放假
" ;   c; Y1 ~8 M+ t. Q
break; ) g. ~* T9 ?% X) j9 @" k" b& z
}
8 V7 G7 V8 j/ L?> " ?1 L2 x! \- S) c  w& j
这里需要注意的是break;别遗漏了,default,省略是可以的。

5 J: F6 _+ T+ L# b. y很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
( w1 O; j& E$ i0 i* I9 ?
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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