返回列表 发帖

十天学会php之第二天

php的流程控制
- T4 _8 {; J' Y! U! e8 G) G9 f5 [+ h' t) y9 |" |' S! g( @
1if……else 循环有三种结构

1 T' o1 U5 x& |/ M5 r第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
3 s& O4 F' h# N  R- d! `! y" h2 W( @" c9 S0 k; ~
if (a) { statement }
; c. a" w9 F  q1 T+ U! [) v) O其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

% \  t' u& Y. W" V$ t6 l6 r范例:本例省略大括号。

7 c, j" m. r! i: C) O" w7 u$ {
<?php : D; n7 D/ U) T9 X# m5 t9 C- ]: o# M
if ($a==1) echo "我爱
php" ; % n; N, d- Z5 P# y
?>
2 O7 f7 w4 l! k1 Q# e+ G. \+ g. {6 T) O3 L$ [$ T
这里特别注意的是,判断是否相等是==而不是=

. T, s* o* W) V7 J) z. h; m范例:本例的执行部分有三行,不可省略大括号。

2 O+ k8 i, P# F/ d- b5 {
% s! q4 G- C, c& M9 o# y<?php 1 `& `/ U  Q9 [: Z
if ($a==1) {
7 G# t+ D8 y# P7 Hecho "我爱
php" ; 4 N* [8 v* o' j2 H" _
echo "<br>" ;
' D& Q; J( t( C& K}
% v8 e0 F+ M$ Z7 G?>
* l& t9 l4 z) R! p- l% a
) M/ s' p2 l% y! y第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

9 A. @) p) v2 C+ F% m* \) p( v! d5 A
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

0 q$ h5 b  o4 A$ i' t0 j5 A<?php 1 c, L: H# E  [
if ($a==1) {
, W2 x+ l7 F# c* x2 Wecho "我爱
php1"; ! b) R- Z8 W  C3 [0 M/ j8 h" @2 j
echo "<br>";0 m/ `8 k6 e1 H6 o* ~4 R0 S
}
2 _, m0 k- k2 K: Felse {
3 e8 @$ l% V6 |$ E& x0 qecho "我爱
php2";
; Q8 M& t' |( ]7 Fecho "<br>";
) X- Z" K* ^; u}
8 q1 I. y9 C" n: u+ e: v# x?>
! Q+ y, Z; j* ]/ B& C# }/ G* D& L1 g4 h0 R' x: ?: T* w' h
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。

3 s- V* n9 y0 U% V直接看下面的例子
# E$ L' S$ N0 P
<?php 4 k& }2 E- b( g5 a8 v' j
if ( $a > $b ) { ( k4 z. p4 W0 q) }5 I4 R4 B
echo "a b
" ;
1 V8 K3 u6 Q+ g7 U+ K  m} elseif ( $a == $b ) {
5 J* d2 k8 y0 `$ `) x6 \echo "a 等于
b" ;
! F& a7 \) K% s6 B/ d/ r} else {
- c  @, |9 x9 becho "a b
" ; 3 k$ _; _5 B5 {# C( c
} ' _$ E, p, i+ n, I' Q% z+ l
?> 6 [) d7 h0 c( w( H2 X5 u

* t$ i6 [" X3 L$ K$ G! C. E2for循环就单纯只有一种,没有变化,它的语法如下
  G$ o9 {: C. D' P9 c
7 e3 g8 `+ i/ `. L0 ~( i; U
for (a; b; c) { statement } $ z( Y' n/ Q" ~
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

1 C5 m8 Y- @3 A. p; G% s9 p) [下例是用 for 循环写的的例子。

5 M4 k& V6 X# ^8 }<?php 6 x" Z. \- `  s0 I% \
for ( $i = 1 ; $i <= 10 ; $i++ ) { 2 N/ D0 o% i, Z$ x
echo "这是第".$i."次循环
<br>" ;
2 I% k+ r) s: |5 Y} 4 E1 v& j/ ?9 o) S1 B+ _
?>
0 F( V8 O, i, ^3 Z3 D2 t* ^, T. P' m
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

7 W, `; I3 i' h2 `9 y: }( _% ]' F语法如下:
/ L" d$ X4 i8 ]switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } " W- h5 ]! s* I' U; p1 Q
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
# L5 w8 b' n7 k& J2 T) |
( p* k$ @+ f. R6 @  t<?php " \8 P' x' L" i) V
switch ( date ( "D" )) { 6 }6 B4 y; g! c+ P
case "Mon" :
1 C+ r+ I- }  u- t7 i* o1 f) U+ |echo "今天星期一
" ; - ^* F; \& V# }$ V
break; , |5 b% u% l7 _8 ^
case "Tue" :
/ s3 n0 |0 S& j. Iecho "今天星期二
" ; / o  Q, R/ d. o& I, m6 e3 z
break;
7 D: }! K/ L" N5 B" f8 ncase "Wed" : 8 W5 E! {0 l2 Y5 n
echo "今天星期三
" ; $ X! i4 G; B$ ?) f' `  @$ r. ?
break;
! @& g! B0 ~$ u% Y0 ~: ?- k! {case "Thu" :
9 {5 h7 E( }1 E, }" `echo "今天星期四
" ; # B# h; f* y* ]) I& M
break; * j0 D* w9 J! C( I6 v* f. `
case "Fri" :   _: b" Q: d& T; o* n2 j
echo "今天星期五
" ;
/ b+ y1 x7 e) O/ lbreak; . T* f& ?  U/ u2 B% @
default: * _1 K. q$ c, y' _8 R
echo "今天放假
" ; 1 z/ _1 I1 d, K8 \
break;
5 u% j( o: X1 U# q' K, y2 D. }} $ ^$ d3 f: A( L9 q# V4 Q4 z. i
?>
8 b2 ?: U' Z, B; w; ?这里需要注意的是break;别遗漏了,default,省略是可以的。
. T+ }5 R( e  p( M5 M; Y* N/ O
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
1 J9 [! g: q! Y& M
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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