返回列表 发帖

十天学会php之第二天

php的流程控制 $ I) T# ~- _) H) f1 F) d: l- B

" q4 U2 ?( I9 s) T; ^. c8 i9 ^. _1if……else 循环有三种结构

/ S9 b1 r$ h) n4 J! b9 V% r第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: / ^) o- C" q) w0 f  h* y( y( {
! n, l; r4 |+ P, `$ ], a4 e, F
if (a) { statement } 0 W' h1 h3 o$ E1 J  e
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
( y/ ]5 z( j! S# z0 X, t4 ]
范例:本例省略大括号。

& G$ @9 o" b0 d# D0 v) q( `  A& j3 }; P! q4 b7 f/ \/ p  y
<?php
: B$ m. t7 {% L) d; M9 z6 ~$ xif ($a==1) echo "我爱
php" ;
! l8 `; `! I3 R1 c?> * H$ a" [9 \" d/ r) v8 o6 w

" P0 x/ x3 x9 S! ^: D# B' V# z这里特别注意的是,判断是否相等是==而不是=

, w  g8 D: T8 A$ N范例:本例的执行部分有三行,不可省略大括号。

5 q1 @1 K" p5 F  W$ m7 t2 h0 ?  p1 x
<?php
  U1 H# [  m4 M. Z7 hif ($a==1) { , N# ^! }/ c4 h7 X
echo "我爱
php" ; 1 z) `; u& }6 J4 `; k% C0 [" ~
echo "<br>" ; 0 c: p; [4 H- {+ {0 w
} 3 W) W: [" _) a  [/ q+ B' G
?>
/ o/ ^: C2 o8 L  Q6 n
; H# c# }2 S8 q' q: d第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

$ _1 i; ?# e  m, L- s3 Z) [/ a5 w/ I; j& v
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

" [" o4 N  P/ o' A9 K3 I+ G<?php * O) y( g( h' U" |! D7 i0 |
if ($a==1) {
: K. I& F8 g6 D/ B3 T7 pecho "我爱
php1";
: Z0 n, _: ^4 y4 U( Decho "<br>";8 n9 K- X: D4 d6 P: E
} 6 z6 y8 I1 P1 P( p# Y! i& }
else {1 c* Y' w& u6 p  A$ N2 b
echo "我爱
php2";; a0 {% h5 W' Q; U" j# a( X
echo "<br>"; * M7 V* c0 J  P2 M
} 5 l% T  C9 o0 L- W: X8 |! h
?> $ Z1 s3 b. t) B) t0 i  \3 S7 I

5 {/ k& z7 A: G$ h2 o$ J第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

( A6 y7 Z$ n' U+ M) f直接看下面的例子

# F7 E' K- W5 @4 O: L$ G+ W. p/ T5 B<?php $ ?; Z9 R6 K$ T2 ^# z
if ( $a > $b ) { - b4 Z2 L6 Y  S8 c5 Q6 m* \9 z
echo "a b
" ;
2 @* V: D, |- v( r4 C, \} elseif ( $a == $b ) {
% Q& S1 D6 l* n; U% H5 l# h6 \echo "a 等于
b" ;
2 ]" @1 n9 {8 v7 g7 J9 Y1 H8 I} else {
5 Y# G( h6 U) z8 v# E% R! Eecho "a b
" ; 2 f% J$ S2 ?5 e) w) r
} 9 c8 O4 Q+ {$ Z1 T6 d6 j: K
?>
6 e1 u5 w8 W  k, Z9 x
$ h4 B! ]9 U, @7 R2 l* B2for循环就单纯只有一种,没有变化,它的语法如下

0 q3 B' l+ M* t& ?$ z
" a) a! h- W* j( Qfor (a; b; c) { statement } ! Q- w: t4 j2 B- ?& E  f
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
( i/ j. G! S, ~' h, J! q9 {
下例是用 for 循环写的的例子。
3 r8 C$ p# W$ h/ n" Q
<?php : T: L+ i7 D2 Y1 D4 D
for ( $i = 1 ; $i <= 10 ; $i++ ) { ' ?% U* x" P$ h6 m  I& }7 }
echo "这是第".$i."次循环
<br>" ;
, {& ~' x8 E/ A5 L+ q  W  U0 E+ T}
' f* i: e- ^; Z/ C0 q( y) R9 y6 i?>
1 F1 {, @  U# ~" l& A
; ]3 C" f" V% J- o+ a  Z3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

2 f% z  y; K6 m) M: ]( `7 M语法如下:8 u; _2 _6 @& \* h/ O
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } $ N; f! v' @; H' J+ z
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ; _+ E" Z, `5 R* q+ ~
! i( B4 |1 I. ?
<?php
( k( E6 y5 S* [switch ( date ( "D" )) {
3 |: E* q% r) c7 ?7 M$ Ucase "Mon" :
! c0 L7 |. V" iecho "今天星期一
" ;   i: Q+ ]3 V. q" r* ]
break;
4 B/ D, V' N( {( P5 A- P4 ecase "Tue" : ( U) Q; C' `9 ^0 L1 ]
echo "今天星期二
" ;
1 M. A5 w2 h: Ubreak; & y8 V0 K9 o* m+ W) f: s
case "Wed" : $ \+ [  j; `+ G0 n  B9 z9 I+ @
echo "今天星期三
" ; ; }& m. G" F! y% b; \
break; , P5 `8 m* W3 Q5 ?  a% g4 ?8 Y# h1 ?
case "Thu" :
( e7 S+ d; s" u$ u" T$ Kecho "今天星期四
" ;
% \( M' V/ ~) M& r( f/ b7 Rbreak;
6 z  t. X4 ]) Ucase "Fri" : ) g. s2 q/ C4 T; W" O) g
echo "今天星期五
" ;
9 ^! M5 p* L+ ubreak; ! |& H4 C1 d4 _) f" [& V/ D) R2 `( b; ]
default: / B' L9 C' e1 e! _( {
echo "今天放假
" ; + B6 m; |- C3 M
break;
1 H: p0 s  G- _3 z% W# Z} ( F- l( H. h+ t( w
?> ( }0 x5 \4 C& G. {4 n+ ~8 M+ A
这里需要注意的是break;别遗漏了,default,省略是可以的。
9 U9 K+ m9 L4 a* h" D
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

* E" H3 c& w" f5 r, P$ k' K十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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