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

十天学会php之第二天

php的流程控制
+ _% ~% `- e9 b7 w4 a* l6 z5 ?: Q& }# g1 }
1if……else 循环有三种结构
+ @8 V0 N0 ^. o$ w3 l
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 4 z0 k7 J: h2 Y! K

5 V9 j; e: d( a$ i9 `5 Q( Aif (a) { statement } 8 k+ }/ d$ B! }% I$ J
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

/ e9 P) F$ L9 }; A2 K: V范例:本例省略大括号。

5 y1 C+ {5 _# C, v- e
* K- G) o- `4 o  s2 g  ]. u<?php 7 B$ A+ u9 C; S/ |/ \$ v! B
if ($a==1) echo "我爱
php" ; " Y6 n5 A3 x; k7 e
?>
: `$ ~  j% [! `/ I! }, `7 l- e% J6 `* k" P: o' S
这里特别注意的是,判断是否相等是==而不是=

$ o$ s+ R9 W8 Q8 |$ Y1 ]范例:本例的执行部分有三行,不可省略大括号。
) I. ^, a" o( P: L

# D" p' e5 f( t8 ]2 H7 g; r: x) L/ l<?php
8 t  ~  L9 }6 p* L. o4 l% lif ($a==1) { 4 o4 |- {* O" ~
echo "我爱
php" ; ) A, \* A: W) D: `
echo "<br>" ;
5 G1 q7 r4 ~" Q+ U7 g, V} # {! u# q% \/ ]( Q/ r( P/ J
?> ; M% {1 D+ |. h, S5 B

, e* `6 D! |8 c1 A1 S8 q第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

2 K' b1 [8 Q2 T( S1 O; W/ W& d" H5 ^# k' [8 {  F# a5 m/ z
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

- f8 Q) A8 ]# v& a6 f<?php
9 P) l/ c) x$ e3 |1 `8 l+ Oif ($a==1) { . m, e6 ~& ^2 r6 a1 V9 d5 B) k$ I
echo "我爱
php1"; + q& z- |8 |* Z. U. C
echo "<br>";4 s( P( z0 V: ]0 c7 F
} 3 F9 ]; X" w+ Q0 I3 ]1 G
else {
1 j, J4 p3 [3 \9 V% @, C1 mecho "我爱
php2";( g3 R9 w1 j/ [1 Y4 s9 p4 u
echo "<br>";   z' i3 X. p+ o' s  w2 @# c
} 0 T; V. G) Q$ u+ Z/ z& V
?> ; v1 x0 N  S9 L# b) l9 ~

* s1 O" e& a% h! i1 X( s第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

) u. }$ }: m3 o: g( y, }直接看下面的例子
1 d: s7 a4 d. p: P' H+ F
<?php
4 B% O! j6 Z8 x) \if ( $a > $b ) { ; R$ B: D2 T" J
echo "a b
" ;   T9 U( J2 j( x
} elseif ( $a == $b ) {
/ M% P# V' r% Pecho "a 等于
b" ; 2 e- u* S) K- V. n
} else {
. ^; c6 g% l& g' U; yecho "a b
" ;
- ]2 M1 |' m4 l0 V1 f} 5 P: c, L, k- V& Z& m  O! V! o
?>
! L+ H4 B) ^' F4 k5 V4 O9 I& v* [7 m
2for循环就单纯只有一种,没有变化,它的语法如下
3 X& A- h( N' y0 t2 n

  m( N- O3 o  W! u( B4 ffor (a; b; c) { statement }
4 @6 x0 p. B' K8 I% y7 p) \9 i  e0 x其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
2 f; A" B, n/ N% q( K
下例是用 for 循环写的的例子。
. i) C9 K  N# |0 W3 J+ K/ T6 o
<?php
- j$ {4 t8 m6 Y8 R& ?for ( $i = 1 ; $i <= 10 ; $i++ ) { 5 Z! _% R. D. j+ i5 e3 a$ z
echo "这是第".$i."次循环
<br>" ;
+ A3 E# h- H5 I; ~( B} 1 g0 ]) u4 g6 I3 p& {
?>
" q" j, }2 F( Z- c3 e# n! e9 a# c
7 a% l* D" z% y1 I3 X2 Q; u6 s; c3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
* {! h' y8 v/ V7 M7 s
语法如下:
, [3 k# R% O4 q- ]2 ?% ]switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } + _7 x4 [) ?  g. H/ O
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 , \+ u' V- f3 e3 J" o: u) v/ v

' K" ~6 G' G# r# w. n5 P6 S<?php , T4 B1 I) O  {1 L5 A
switch ( date ( "D" )) {
! D) j, A( B* {: m3 g% @case "Mon" : 2 S! U5 m+ y& H6 r. r
echo "今天星期一
" ; 3 k7 T! h8 P& ^. S) g# O( a
break; ( X# y; N& U0 L% u+ L
case "Tue" :
* n+ t  q4 K3 x1 l) R" L' [/ u( Pecho "今天星期二
" ; + e. |8 o% T/ ]7 R4 g& j
break; . y/ X& f5 D% U' u" p
case "Wed" : 2 |8 X( X- ]. E6 g" D' D
echo "今天星期三
" ;
, b8 ~+ q! W3 P& o# c  R( X8 W, D) Lbreak;
( q/ S9 g0 D, R2 W& ]case "Thu" :
; y# K5 S2 Z! l/ a! I. ]6 qecho "今天星期四
" ;
" J6 F  I) i0 I+ @( B$ e! b5 J( rbreak;
7 K" c  X) f- g8 f# C, O( jcase "Fri" : 2 ]! X, W7 `7 w! O
echo "今天星期五
" ;
, m! {) ~- r; H, ^break; $ T8 w# A: a3 l5 E% T2 G
default: . o1 ?- Q4 E* F1 e+ s
echo "今天放假
" ;
1 i2 d7 Y; D6 |- K4 F0 U+ U' tbreak;
  Y9 c9 ]; t& P( E* o0 a}
9 P5 ~& ~. N. A% h9 k?>
  K* `6 P$ O- R, O, j1 u这里需要注意的是break;别遗漏了,default,省略是可以的。

9 P+ u& [3 Q# j9 K% T2 G很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
2 {( H0 ?# _- w% J* u+ G
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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