Board logo

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

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

php的流程控制 7 G& `+ n; b& S' V' j4 P
9 n5 D: h- ^, k  x* i. x- _# e9 [
1if……else 循环有三种结构
; e( \2 V& ~! {1 g, y
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: : h' v3 @, \( t. t* H! @
3 T  ?7 _, K' O
if (a) { statement }
; g) n4 L7 [; _5 u' ?其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

4 e6 C6 F) h' s% f4 ?* o1 x9 m: L范例:本例省略大括号。

- ?% f4 l! q/ E5 c9 _9 v7 j* s( _+ S- a8 b
<?php
: o& q# ~* s& f' a3 F( kif ($a==1) echo "我爱
php" ;
5 v' B/ Y, M+ v" F& W  p3 P% _?> + N- }5 k& `5 P8 T
8 w" N% ?: X  g: E9 {" [( a  b$ B
这里特别注意的是,判断是否相等是==而不是=

( r$ l8 s% {! R! x范例:本例的执行部分有三行,不可省略大括号。
- C! M3 o( Y2 i3 o0 x! h1 N; u

) }- {* S( e& m. }: ]<?php 0 y! n5 B# H. N" Y
if ($a==1) { ' c( ]4 k! U  q! s4 r9 W
echo "我爱
php" ;
3 C& \& M- T; H. necho "<br>" ; 3 I  {: U  @: X# B1 D
}
3 A& x' B' A3 N8 Q/ f( \?> 1 B- p8 _+ \/ i

9 W! m$ J4 G8 h" P, y第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

6 l$ D# u8 \4 Y. y
' P4 ^+ k4 {8 `+ X5 j+ ^& Mif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

- M5 f: u$ Q* B+ b" k  A<?php
  z( k  I* @% i0 G. ]if ($a==1) { " A) W$ Z% J! g* w) s( @8 O
echo "我爱
php1"; 7 J* x/ l. l. u6 z/ J+ Z8 J) Z
echo "<br>";
9 {5 _8 @& a* S- E# ~8 ]8 m/ u" d8 ?9 x8 b} 6 J! Q. y2 I9 z7 k! `6 O
else {
0 X# L  x8 f$ Necho "我爱
php2";
0 N9 x4 \& u/ a3 S8 pecho "<br>";
- n3 H9 d+ C0 S1 U# h; B}
$ {3 z: p4 o2 v) N?>
& |! e1 |4 W# y5 i3 f3 u8 ~* \8 ~" A5 J0 V1 a9 Z
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

9 z# V- Q' a  q/ a) }: \/ s4 a9 G直接看下面的例子

$ b7 t( p" q6 Q<?php ' Q' \) }- [" M5 I& ]" K1 ^+ j7 I6 V
if ( $a > $b ) { ; n- N1 c5 n0 r- h& l! {
echo "a b
" ; 4 l# q1 z6 M- m* Q; Y: S
} elseif ( $a == $b ) { + G+ S) G. ?% b% a
echo "a 等于
b" ;
$ U) w( }$ B8 x5 e1 N8 t% \} else { & x4 n, i: u  o! [
echo "a b
" ; 0 R$ S- v0 w( I3 A" n
}
8 ?! W' e8 I1 c1 F! }0 b?>
& W. S6 K; f" j- R' l8 d+ z
  \* v4 z$ I# c3 {( |% q8 E! Z- I2for循环就单纯只有一种,没有变化,它的语法如下
$ J  x& @- @8 }; k  p6 T7 F

& l9 a9 Z4 z8 zfor (a; b; c) { statement }
: M) \2 C& @7 M7 o' b其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
. P9 b+ u' P; e. W
下例是用 for 循环写的的例子。
4 |2 c0 K4 F( U! U! F5 \
<?php : @8 j4 U: i; f4 x/ p2 M
for ( $i = 1 ; $i <= 10 ; $i++ ) { ) ]1 E: s2 L2 |3 ~0 z
echo "这是第".$i."次循环
<br>" ;
& S# O. E% ~( G  P/ s: _} * q1 J# p8 q. v6 G' X
?> ; q! M1 [0 ~9 q2 [6 S( a* p4 Z+ E( _! w

  C+ h! M. ^" f' a' U& Z$ v( H3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
; l: E! s- z  y& @6 @- j7 l
语法如下:: X+ n; h2 q/ j
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
% ~1 M0 Z8 x/ r! x; K2 J
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 , }& ]$ z4 V- S) r4 E4 N6 R9 j

5 a) F2 s" O7 s* b<?php
: u5 n) l5 [+ i/ T1 d6 cswitch ( date ( "D" )) { 0 g, ~& r0 B' C" V- A& _9 P
case "Mon" : + a+ J+ b/ [0 ?# s& }5 {' H. Q
echo "今天星期一
" ;
( r+ p. k$ r' a3 o1 n$ jbreak; , s1 s, m7 A2 b( D1 V- `4 F
case "Tue" :
7 s. d4 }- s% A3 a/ wecho "今天星期二
" ;
+ J2 s2 i; u; u$ ?% @# O( ebreak;
8 }6 S0 x* P  h/ b+ tcase "Wed" :
* ^0 R; \- J/ Z# N" x, M. Eecho "今天星期三
" ;
' w+ V# }, i6 D) \9 K2 ]8 Abreak;
/ N4 [) y" a: q$ ucase "Thu" : : {$ }; T: _) m& {9 v/ F/ ^/ O
echo "今天星期四
" ;
, V  @/ i; q# J$ \# jbreak;
8 e9 o' g, H+ Z- e. [  ?# O2 j# {* ecase "Fri" : : ?. r3 h9 g& Q; t9 C0 u
echo "今天星期五
" ;
0 C! f0 l6 N0 C$ H' M8 Hbreak;
7 k; V: F) W# [7 Udefault:
! v% l5 g4 ~. fecho "今天放假
" ; + U6 s& l6 v/ j
break; 4 F9 o4 c7 z; p- [* B  b6 O. O  x* ^
} & ?! R; W3 _9 R* O; d
?> 5 u% _# ?# u( |3 p
这里需要注意的是break;别遗漏了,default,省略是可以的。
: C: G& z7 D3 n3 e8 j% Q
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
0 [2 X& ]: {2 I  T) w& m/ M# e, j/ R
十天学会php之第二天就说到这里,第三天开始说数据库的使用。






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