返回列表 发帖

十天学会php之第二天

php的流程控制
7 _! |+ ]0 K8 }
4 i' |8 U* Y$ m7 Q/ N- S$ w( p7 w1if……else 循环有三种结构
% u( o0 ?. Z* d  m
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
; C4 i) K( f3 X$ T
7 m( P: u8 l# {* r. Eif (a) { statement } 3 f- ~% z9 J1 L7 D) }
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
$ g1 M+ F* S7 [- r- A' ]
范例:本例省略大括号。

0 a% q; t7 W; U6 T4 n. P! H/ e' w" y: o9 G6 g
<?php # T6 {+ Y( ~  v5 m' }# ?4 g$ V3 w0 A9 z
if ($a==1) echo "我爱
php" ; $ d' ~% M! T! d* o, ?# H
?>
- m- Y4 x. m4 g! @
: S- e+ i) |3 u4 A* K! H. H$ c这里特别注意的是,判断是否相等是==而不是=
3 R% f  v& b* ^, f. E! w6 {. e
范例:本例的执行部分有三行,不可省略大括号。
& G$ ~9 k, w1 W+ W! J2 j: M$ P
! y4 ^6 c  \1 r
<?php + [; o7 m6 D. A+ Z* q7 U
if ($a==1) {
9 R# j; `. K0 Aecho "我爱
php" ; ) b! T/ T3 R2 E& ~" ?
echo "<br>" ; $ ]& \# c4 |  g3 E- G# E1 |
}
7 b9 w- T0 ~1 D1 T$ t?>
, u; C/ b" W# D$ d3 V* p' p( o% \- T3 m5 u$ W
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

% P1 x. a9 f6 j7 U7 x4 _: q
; ^& g- P* N2 X# ~) kif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
0 E# B. u, C0 C; @% {6 b7 D" c
<?php
- C4 R2 O+ d5 K8 B9 Z+ H9 wif ($a==1) {
; y1 C6 M' Z6 \$ i- |) S/ Oecho "我爱
php1";
0 o8 M% r+ g% s- S! n) x: D( {echo "<br>";
& u$ o# D- b1 |$ ?}
/ e3 s' G  r( M7 [# o! q7 p* Qelse {* a, k/ o+ C5 m/ G- z
echo "我爱
php2";$ H! \7 o5 `& m( D
echo "<br>"; ! |  Y4 L9 z, y8 X
}
# F9 j. P* f3 G) D2 h?> ( Z' l5 l: s+ ~. U' D  V
5 K8 O4 I4 \* [; ?8 W% p6 R
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
+ C9 M4 K. I/ j! d- y2 E+ M0 @
直接看下面的例子

" _) M' U$ |' v  @/ Z<?php
$ e% F; ~  D) [if ( $a > $b ) {   Z% C$ V) J5 X* o, y
echo "a b
" ;
3 l* w5 ~! Q/ ~$ h& A2 q} elseif ( $a == $b ) { # j6 \0 h  L' |: P
echo "a 等于
b" ;
" _6 b8 ^; a" P* o3 W9 s) i} else { $ E5 j9 q7 q8 ?/ Z9 c# _
echo "a b
" ; , v' Q  s# ?# X7 p
}
$ c' s  J" e* N5 b?> 5 i# E2 H$ ~  k& c/ n$ J

" L, ^) g6 w8 w1 F" c/ _8 o2for循环就单纯只有一种,没有变化,它的语法如下

; c0 n" A* [: b, `- t& z. L
  B' N) I  u$ k6 S7 g+ x( @( ufor (a; b; c) { statement } / P/ \1 _' K5 f
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

, ?" t( a1 P' {下例是用 for 循环写的的例子。

/ g  S+ f8 j4 ~4 |<?php
! b9 N- Q+ P" y. n; `! hfor ( $i = 1 ; $i <= 10 ; $i++ ) { 8 Z- C. b0 l: @, n4 m- H
echo "这是第".$i."次循环
<br>" ;
, k9 b0 ?$ R, o  Y) |" v/ Z}
9 o6 q5 R( O2 e; o7 E/ U# M; z& n2 D?> ) d, l0 K% j% p; n1 A" B

# G9 i% A" a! ~! F# n5 T3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
, }9 \- R6 Y# S2 f" {9 e7 B
语法如下:4 q& u( q: Y7 Y4 d  z% N
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } " ^/ t4 \" z; T" i8 H
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
' ]% H7 N7 X; H6 h/ @
7 p  q! o: H1 |/ n# s0 Y% k1 L) Q* T& e<?php
& Y# f- d/ C! i) @  _  {7 zswitch ( date ( "D" )) { 7 Y: y5 c1 a* `  b
case "Mon" : ) W8 q) k4 D. ^; t9 v. L# I
echo "今天星期一
" ; 6 r6 w6 l: g+ j
break; ! s. `- u3 a8 Y! D
case "Tue" : 0 N6 b. ]2 \& B1 I
echo "今天星期二
" ; ' G8 }9 z+ \$ D% r: h5 [5 k3 r
break; " P" R' ?+ f5 Q. [; s, M" H
case "Wed" : 2 o) }* ^% R1 r- j2 C( @
echo "今天星期三
" ;
2 d, z# w& Y& ~" U5 i9 O5 n, A2 P2 Ubreak; 1 M7 m1 R& A5 }, G5 }) h& o3 M
case "Thu" : - t9 T% Q6 O! L: P0 k; H
echo "今天星期四
" ;
7 X% B2 v5 J% }3 a" e$ Wbreak;
( \8 c1 m9 d9 H) W9 ucase "Fri" : 2 }  w, O) S. N6 B! x0 v' e3 B
echo "今天星期五
" ; 8 P4 Y$ Q7 w# ^& s. D# J3 M
break;
* o5 U  q: k7 e* x' A! ?/ |: S- ~/ x( rdefault:   u8 P5 H1 U- r) j
echo "今天放假
" ; ( u* N5 h! U- i5 {, _" @# |
break; 8 t/ p4 b; }& ]5 Z# e/ O/ l3 I
} 6 N. p4 W6 t. q: N- _
?>
! ^' A6 o& ~. R  r这里需要注意的是break;别遗漏了,default,省略是可以的。

0 ]7 O/ e! V. r" v很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
; B7 s3 a* W. Z( G! p, _
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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