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

十天学会php之第二天

php的流程控制 2 G6 }! J; {5 i$ _1 h

4 t' M: ?2 V0 y  [8 A3 C1if……else 循环有三种结构

1 n& L8 D: f3 S# C' g第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
% H8 R' `3 q+ n" V1 v7 C4 g4 A- O
if (a) { statement } 1 _: Y3 z0 h; V% b) |
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

. A7 t- d2 F# E4 G7 C9 j范例:本例省略大括号。

; Q9 q+ i# i7 S8 a
8 {1 w) J1 @$ Y1 ~, i<?php
( k8 ~4 u4 e; I6 tif ($a==1) echo "我爱
php" ;
" b1 p1 |# }1 {( Y3 C, P5 H" y! s?> # h# O$ d7 s9 T& _
2 O6 h; d1 t6 J. U* ?5 O
这里特别注意的是,判断是否相等是==而不是=
" c  I8 v% E( \# a/ G+ R6 Q6 _  F
范例:本例的执行部分有三行,不可省略大括号。
4 y& i, U' |8 i4 c# ~1 \! \
) n' l3 S3 N# x, d3 u! \
<?php
) }0 ~# t6 B# aif ($a==1) {
! k' `( d- L" B3 D$ S7 Uecho "我爱
php" ;
% m% l, R6 E8 q  @0 J" R6 d: Z; ]' iecho "<br>" ;
; j& c  _# U! R  Q! k1 ^' }} $ _4 W, G# K' J% e, M
?> 7 B9 \& j1 ~, J3 n+ o

2 r3 z  M; @, [0 t& n7 I) Z# H! F0 ^" r, |第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

7 c2 E9 F: D# @2 L- M6 l8 W0 A$ N$ e6 ^" W1 G
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

: F' j8 m# o- S* @! U<?php
4 \6 c8 x" Y  h7 A0 Qif ($a==1) { * C' Q& v9 p6 }3 C4 n9 I
echo "我爱
php1"; + r# r, ^7 h6 I3 J9 L- w
echo "<br>";" T' g+ l/ @- }8 h6 [
}
( q$ P6 l1 K+ X; i3 c* Yelse {; R2 w% z) S  v
echo "我爱
php2";
0 g0 }0 B5 r- t4 a' @) Decho "<br>"; - S, E9 G" l' i
} , s( Q3 i0 |' `, Y- ]* x
?> / C, a7 i; |4 ~+ K  ]
% m' C$ i5 w, U% ^; C& e
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

, G4 V/ _" v) V# R; W直接看下面的例子
7 s& f( r1 r8 e: R
<?php ( ~# c. M' d+ P7 k
if ( $a > $b ) { - |* i6 \& f2 e6 }+ N) l0 m/ Z
echo "a b
" ;
  Q& G! R* u# m( e1 l; Z} elseif ( $a == $b ) {
" A" |+ |& Z$ t1 K2 F7 `echo "a 等于
b" ;
8 v2 `" E0 i! d% r% a, a9 A5 g) w& X} else {
" W" r! u( u9 ~3 P- d+ Kecho "a b
" ;
) X! [; A% s* \4 p/ _}
4 L( F  P2 S* h4 n?>   c. e4 Z1 c8 V5 a

0 k# m( Z  K0 u, i/ |2for循环就单纯只有一种,没有变化,它的语法如下
$ e/ y9 R4 e1 }* K

! |: Z8 O. O+ a: j+ Ffor (a; b; c) { statement }
0 f6 R4 ~; g9 R# M; G其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
: M- }1 H8 W% O, H
下例是用 for 循环写的的例子。
6 I2 R. H- r0 W6 |# S1 R9 c' R$ J
<?php
9 [* }" m, A5 J% g8 Qfor ( $i = 1 ; $i <= 10 ; $i++ ) { 2 @! ?$ L  R/ \/ l9 b; L) Z$ _- {) U
echo "这是第".$i."次循环
<br>" ; ! G, S+ A& y# `: I8 F  L" h
} " I6 b/ I5 r) @  x; ]+ b
?>
, c3 P8 m5 A% r7 A4 `: ^8 L3 U* T, k8 ]
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
' a& p, I9 G4 Q( G+ l
语法如下:
2 {% a4 F, z5 @' rswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } ! B3 ]" X3 p" ]9 A, p) A0 q# ~
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 4 j* G0 z$ v& a2 g7 L

  g) E$ h8 @2 h* t- N2 b& `<?php 7 s% E" W3 `0 ~! }7 V0 U, O
switch ( date ( "D" )) { : g6 q) A4 a9 Z
case "Mon" : 6 t" `1 g6 n2 i$ \0 j3 U
echo "今天星期一
" ; % j9 z! P( i' m" j+ M+ p- R
break; * I( M/ ?/ a) F4 V6 K/ V
case "Tue" : 4 e/ z% `4 F1 E# F. |2 l5 N5 d
echo "今天星期二
" ; + f' b& i9 k* l- L3 b
break;
% Z' F& ]) f' s) ecase "Wed" :
5 S' @# l% G2 a; l+ z8 pecho "今天星期三
" ;
: t! S" G9 h/ b7 H" r+ r8 nbreak; 0 @6 d/ T* ~, G
case "Thu" :
, z# E' z" `- k* ~( k3 O! {echo "今天星期四
" ; 3 q- G% b* H. r
break; 8 s( h& k; ~# S* w! a" ^- y% c1 M
case "Fri" :
$ @* V, Y' W* oecho "今天星期五
" ;
! n, I7 m* `- a4 ?* K* t" wbreak;
) W0 f0 F$ A7 R  k, ?default: & T) Y: r- y6 k8 N7 L8 ?" u
echo "今天放假
" ; ; w/ `5 ~% F) b2 R( R
break; ( T0 M. r4 A8 \0 h; P
} 8 a4 }* U0 ]9 o$ U; y" C
?>
! @" l- P7 p3 F; k$ J5 R这里需要注意的是break;别遗漏了,default,省略是可以的。
! A$ S- J, q% H  f1 d/ I- s
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

$ h$ J) ]2 {8 |* e9 _十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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