Board logo

标题: 十天学会php之第二天 [打印本页]

作者: admin    时间: 2008-3-26 16:36     标题: 十天学会php之第二天

php的流程控制
; C  Y+ l( P8 W- u  [7 o- I2 a& X1 M, |( A& r+ U8 S! g
1if……else 循环有三种结构

$ {* D- y* p/ m3 f* ~& m第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: # [9 `  M- E. h+ F* R2 T
  C+ @% x6 i* c) Z
if (a) { statement } 0 L' ~+ Z; O3 Z! [& m) E! w8 o
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

: c9 l2 k  m; s8 S0 |范例:本例省略大括号。

8 R6 o7 H$ N- Q# n+ f$ L8 }+ y5 v' E* R- z
<?php
1 Z9 F7 k' O: J! l# Pif ($a==1) echo "我爱
php" ; 5 q' q5 h  R8 h# p1 c+ K; _
?>
+ a4 b% g- z* p- U$ C% r3 E, d2 r7 y* U7 x' D) Q
这里特别注意的是,判断是否相等是==而不是=

6 S; h2 ~: M$ R: |7 C, u) E& X范例:本例的执行部分有三行,不可省略大括号。
4 _8 a/ m( B; }
) C) Z9 t/ m9 Q' K6 X- Q1 o" {+ r
<?php & J* o3 ]# ~3 I  o' B
if ($a==1) {
' y0 O5 N8 S2 r3 T% uecho "我爱
php" ;
* Y5 @1 _' _  S" _1 iecho "<br>" ; , @/ o4 d' t+ b
} , {8 ]" \' \! b* m8 O4 r  h1 B
?> 9 ~' @1 @+ P9 l  h( o' `

# f; V* b, X9 \9 a! D5 O第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:
( a3 |2 j( l' n& W1 d
1 M' H$ m  q, I7 }
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
8 u: w# }! f+ ]# d! i5 p) e
<?php 4 H2 _0 L8 F# R, R" B5 S
if ($a==1) { 6 R7 g& d6 J+ v) ~
echo "我爱
php1"; 0 L/ D7 U7 V0 Q7 n3 w. w* k
echo "<br>";" P( T" }9 u" w0 n
}
* W- p/ p( |5 j* Y8 k; I; E  Selse {$ s$ w1 Q% O2 P. Q3 W1 F, ]
echo "我爱
php2";9 l8 J2 A  J) w' v8 s
echo "<br>"; : i1 {# Q+ t( F9 G3 w+ T% q
}
. d" r2 ?5 ?+ R5 t7 B?> ' g* V9 e/ {* x9 S
9 |0 `$ r  y4 |) ?+ A0 a9 i  Z
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
( S1 p) C: U# k' x. ^
直接看下面的例子

$ @% U4 S. D8 }# X<?php # \8 b6 p+ e! Q& f* a
if ( $a > $b ) { : L3 R* P  K: ?1 l9 i. ~7 W9 i
echo "a b
" ; / H' Q2 l8 z* ?; q
} elseif ( $a == $b ) {
' o. B) o0 l+ i( |echo "a 等于
b" ; 6 ]8 [" Q9 A; u8 U* o; x
} else {
& b4 i4 N  Z, m9 Y$ t' S2 A+ Zecho "a b
" ; + F1 T  N3 s0 I& u
} 1 s' H6 Z: U3 i
?>
. X# S; c* L0 d( y% [- A3 ]% b
) ]  W) k) K  @2for循环就单纯只有一种,没有变化,它的语法如下
$ `7 j$ c1 l5 d8 o' U

: v( M* M6 p  C' s/ v$ e' D# t) tfor (a; b; c) { statement } 8 t0 K9 O3 u' \/ w1 b; A; @- X7 m
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

  Y/ o/ O+ x: h# J) F% v, J' [; N下例是用 for 循环写的的例子。
: S  P& G1 X. S2 k
<?php
% W- d% P  \- f8 v  z- Y: d' Ifor ( $i = 1 ; $i <= 10 ; $i++ ) {
; C/ ~" z: l( [# }( c4 ~echo "这是第".$i."次循环
<br>" ; 2 `( x( B0 O) p4 X! w: N- V
} # m( W9 l+ ^% ^& w: r
?>
& ?$ r+ T. Z, i/ x0 t% D+ k6 P$ d
( P0 q! K7 `% e. P4 Z: O. f- v0 c3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

% l$ v, J2 |- C# H0 [- O5 j语法如下:. O) G" n7 e) ~" G' K
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
$ f( u' T; I9 R" u
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
: [7 j0 C" U+ m$ {( z- x# Z6 H  `+ }' c! M. l% l
<?php ! }+ U9 o* Q+ n3 S0 e
switch ( date ( "D" )) {
3 h4 g% w, C7 N& u& g7 Icase "Mon" :
3 E! _. o  M/ T( t" U( o9 l3 l: ]# iecho "今天星期一
" ; ! l' T" @2 v: b+ K3 E8 ]
break; - t0 v4 l4 n% e; T& ^: m8 X
case "Tue" : % R( d/ j( K2 H' M4 @9 W
echo "今天星期二
" ;
$ ~+ q9 j) p, T+ j9 Cbreak; ! B! T8 Z) I# e, \8 ^; Z
case "Wed" :
$ g& J" w* y3 T9 L) n* P+ Yecho "今天星期三
" ;
8 B; d5 M# i8 g6 I& Ubreak;
% y/ o* `  R9 T+ Wcase "Thu" : ( D- f7 Y" x4 P! A8 H5 x- |
echo "今天星期四
" ;
0 \% E% T, C' R; P5 ^: Kbreak; 1 g2 Q5 R0 o9 j( Q5 D. F! B- U
case "Fri" :
/ S8 H1 ?9 q  p/ C3 \* Q1 zecho "今天星期五
" ;
4 ]4 H7 l% a8 h9 c( G% V4 x- mbreak; 2 D3 Y+ b/ s* X9 T' V! e7 E
default: 1 J+ F7 \: o3 M  p: L
echo "今天放假
" ; . P5 \9 d, l! z$ K
break;
5 ^% b/ I; t8 [) ?6 u# c} 8 l3 K- Z1 X  f, g
?>
0 i; Y' y4 E/ ~& `' Q这里需要注意的是break;别遗漏了,default,省略是可以的。

+ ~% X' x1 ^' A. A很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
7 u$ M, b7 n3 R9 a# f; H2 a6 T
十天学会php之第二天就说到这里,第三天开始说数据库的使用。






欢迎光临 捌玖网络工作室 (http://89w.org/) Powered by Discuz! 7.2