返回列表 发帖

十天学会php之第二天

php的流程控制
% P3 m( B% ?6 U1 ?- {$ c1 V' u1 r+ [# l' h5 p! A" E, V! D1 h1 Z
1if……else 循环有三种结构
  S# {5 c& W: S! @
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ' |" B7 x1 }: K* u0 u

3 c; F; K( ~+ cif (a) { statement } . [- i% \, z9 g4 n
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

" _& ^/ ]1 R: O) @: ~: M0 g范例:本例省略大括号。
8 t0 d) u: P, g  E1 m

6 ]5 E$ G. K" Z) W4 k* `<?php + s( _: C8 _  u& I7 p% z" f: v
if ($a==1) echo "我爱
php" ;
( J* {1 Z4 N4 [, R; u?>
) a/ e7 i$ Q+ p0 i& ~% f- g  Z
& I3 L: c3 R. v8 e: |6 s这里特别注意的是,判断是否相等是==而不是=
4 J0 D' z( r+ ~* t% h
范例:本例的执行部分有三行,不可省略大括号。

# R: a. J% w& V+ {# t1 w
6 [& t3 X; M" H. c<?php   i: r  m/ C& M5 m
if ($a==1) {
/ X1 O) ^& s, _echo "我爱
php" ;
" p/ h9 R9 i% h9 gecho "<br>" ;
. s/ z) V" k/ C7 M- P  N8 ]! h} + P& i* b% u1 v& k1 M7 T! A. R3 s
?>
7 V% m8 W1 z1 b1 A
* ^, p7 B" L* G. ?/ y- k第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

9 i( `( d9 `" d& b: O* y% @6 u/ _3 j, m
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

4 L2 f( f2 O# I$ D. h) T7 |<?php
2 I6 b& O) q& _+ M9 Pif ($a==1) {
, Y) f( l! ?6 U8 I2 r- gecho "我爱
php1"; - d' U- u$ d4 K. t4 T
echo "<br>";
5 n$ n: t8 a( U# z  }}
7 o6 ^9 J- c; `- B  ~; o& uelse {
/ U; d  R+ g+ Wecho "我爱
php2";" q$ f3 C/ Q  G4 D8 p
echo "<br>"; & z& _+ c* e" n9 J
} 9 O# L) o( j8 U: U. q
?>
5 W6 o! a6 C/ B/ m" }9 z& m4 ?& C+ J' ~
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
0 p6 b+ s) e4 v; {& [
直接看下面的例子
- D" ~3 }% v6 j6 {1 `  }- t
<?php
8 u+ t+ t3 R) z9 Z: a3 v. Nif ( $a > $b ) {
  h1 F6 G5 W/ g; Fecho "a b
" ; * T. Q; K4 K" K; G
} elseif ( $a == $b ) {
/ N/ @6 D9 X1 L* J& a; e. B+ [echo "a 等于
b" ; - y3 A3 |6 r% h6 Q/ a5 ?4 P
} else {   {9 ^% ^) T5 A* g
echo "a b
" ; & U4 Q4 U0 V% s0 K" e8 b6 G
} 8 n5 |& _2 w/ m) _  F
?>
! z- w9 b7 N. l5 y( j, a! e4 ]/ p3 [* ?( m0 |  L$ Y& q
2for循环就单纯只有一种,没有变化,它的语法如下

/ ]* J- j. X$ `+ f0 x3 O
& R, V  v7 g7 X4 J. h4 `for (a; b; c) { statement } + v% T3 p: @: o. j  u
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

3 Y3 J. {# A3 k下例是用 for 循环写的的例子。

; N! r, D! l: X- Y9 E- P<?php
$ C) o6 o9 U9 U6 z' W# J0 ^for ( $i = 1 ; $i <= 10 ; $i++ ) {
! a5 W4 `) G9 H/ W0 j; k$ cecho "这是第".$i."次循环
<br>" ; 3 Z3 O) K( K% K. I4 D& Y
}
4 _. D$ v7 r9 N0 }% }/ u# B+ [?> 7 z- P/ H: Q; y# B' @& K) a- n/ S
' o8 Q' ~9 O, t  \# f$ F
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

  E, P1 j5 w( \) w* q语法如下:3 C- U2 m' x) n( Q( M& p0 p: x2 f
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
, X4 ~3 y: Z$ j
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 2 T; N3 f' m; S0 k9 q! Y
- A; m8 s: G0 Q# R. i6 }
<?php
2 e, p! _! p& _) L1 Pswitch ( date ( "D" )) { & R) B) _2 l6 }" I4 P( {7 z# F- ~
case "Mon" :
: j% V7 b2 l8 `4 A1 ~echo "今天星期一
" ; % Y# h0 t  Y8 T
break;
' p! W4 M. g( z, u8 I/ ycase "Tue" :
  o% Y% o; L7 p! @, V; `& iecho "今天星期二
" ;
( x/ w% n7 U7 {' O+ ~( }break;
; @8 _  K" l; Q5 ]- H& Ocase "Wed" :
) b7 b6 a( E+ v% O) _/ z" Cecho "今天星期三
" ;
/ ~* \! y3 ~" g6 R$ y. G, rbreak;
! s  |+ S& X0 x# D# g- |case "Thu" : # T% W/ C. C7 H6 e% E& a
echo "今天星期四
" ;
* I. c% O1 d0 Q- R* Y' j/ x. Z& o) vbreak;
" \- l0 w. h* \case "Fri" :
* I4 P1 X4 f0 F1 n  `# [& U; Decho "今天星期五
" ;
$ G  E: s' s: B$ Kbreak;
! e* j* \( t/ _: L# W+ Ydefault: ; ^, |' i% E" f) q) d0 G
echo "今天放假
" ; " F  L1 F& s* U$ `+ T( L3 _
break; & c6 H) @8 p4 p
}
) @& I5 P! U% J" i2 b/ n?> % b8 ~7 ^* M1 H2 Q
这里需要注意的是break;别遗漏了,default,省略是可以的。

' w0 {. G! U& C: A/ f& M2 v很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
( K, ^/ R8 C# X3 P3 n6 k; ]9 @+ S7 v
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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