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

十天学会php之第二天

php的流程控制
5 A) p, [9 Y) U# j$ c: W
; q7 o6 g# W3 c1if……else 循环有三种结构

- v, J/ b- y' N" A  L+ e$ H* {第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
( f1 G) I0 h! `) v0 i& j- k0 I
0 {3 H1 `& d: r% gif (a) { statement }
+ E8 x  p3 p; v其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

8 t" z8 Y$ k: }4 l9 _范例:本例省略大括号。

, M0 }8 A  Z/ m* s# @/ u4 G
" }- v( a: A, U2 y- \& K1 ~. V- ]<?php
1 m6 I7 t" `: \0 Kif ($a==1) echo "我爱
php" ;
" M5 v8 @" i) t9 S1 T3 B% W& F?> 1 e. r# u& o. y5 i3 b( x6 z4 v, t  R8 c
8 O- W" @2 _0 y( k; |
这里特别注意的是,判断是否相等是==而不是=

5 J1 ^4 @8 Z1 b! d% X范例:本例的执行部分有三行,不可省略大括号。

) s8 x) b7 [, b) G! f- C8 ~. W) K9 v  R0 Y
<?php . s' q6 _: R0 N" f: a- A
if ($a==1) { " J" a! S7 [2 [: |
echo "我爱
php" ; * ?# Q1 J2 J- s
echo "<br>" ;
. U- j6 B9 L2 M1 v: C}
+ Q$ r; w. J4 S* |3 p% ^3 |?> 1 r% b4 W. t" W+ p; B
$ W3 L/ P/ ]# c) x. R2 a# d8 l' _1 a3 [
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

6 R  i8 ^; \7 v- j( I1 \+ n
  f7 F9 B7 u$ Y& ?if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
7 X3 }5 l. Y2 R0 c9 ~9 {. a; i( U: i
<?php
8 C- a( i) C: g( n8 rif ($a==1) { 0 u$ V2 ?7 Y8 E, D
echo "我爱
php1";
; y' m( V9 d, R+ Yecho "<br>";
, F$ r. [6 B) M}
% q& B2 B4 Q$ w5 M+ b$ Lelse {9 i2 d" l$ u5 X
echo "我爱
php2";
* n7 Q7 W( i$ ]! ?8 ~echo "<br>"; . z% k" m4 S2 G6 G- Q1 C, w0 [$ {) Q
}
/ r+ E' d! C" |( G, n0 e?> 5 j- ?; h( [: A+ Y0 I+ O2 H  ]
; d% x; w% Q/ D" }5 Y
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
! F9 b, ^; R% k
直接看下面的例子

# @% S9 C0 P1 B! c7 E<?php % D7 d/ i1 R/ Z# f
if ( $a > $b ) {
- ^6 t4 _, o# C; d0 B. ~( E6 Xecho "a b
" ;
4 \  `) c" B4 q6 v' p} elseif ( $a == $b ) {
0 ^( k& z9 ^# L2 ^echo "a 等于
b" ;
) R  F* Q0 A1 O+ E, ~" v: l} else {
9 j# ~1 w. A5 V8 Z1 t" x8 Q: [1 O4 xecho "a b
" ;
6 U' Q% c- q. }4 n5 J- ~} 3 [2 W- B  j$ G
?> 2 }2 y( k8 Y6 a; K

2 W  ]; v* w. ?) b: w2for循环就单纯只有一种,没有变化,它的语法如下

- C' d- q  }( l1 l8 P: `+ _- B
8 i' F) Y1 F5 }. Sfor (a; b; c) { statement } 1 v  e8 _: X! C3 W! c0 N1 u& n- C8 s
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
* n' ]% i0 Z0 F/ N
下例是用 for 循环写的的例子。
! z0 n" S# v/ e( R2 N
<?php ; T6 [5 O3 W$ T" g" `
for ( $i = 1 ; $i <= 10 ; $i++ ) {
; X" d; D- t5 U" [4 jecho "这是第".$i."次循环
<br>" ; + \& \$ {4 P) z. R1 v
}
9 g) w! ^* F/ I7 t( H3 U?> $ r% @' Q6 L3 w, \" }& T1 H* j

- A; i, d, ?9 H3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

" m1 b/ f0 f  c  u" g; ~: M& ]4 ?语法如下:
' U) f& D2 v* y- ]% h& B% W, Nswitch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
0 W3 `& R2 D5 `/ m3 }1 o* ^0 n2 K
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
9 |/ b  H  y6 p& _
1 T4 c2 K' ~/ H<?php : \9 ]% D  ~1 c9 L) |/ h; Q+ m
switch ( date ( "D" )) { ; a9 r% c2 R9 h8 Y5 i
case "Mon" :
4 Q; [9 w4 Y* [7 x- M! }4 p( techo "今天星期一
" ;
. Z% N' N" y$ W' D) t4 E& c6 @break;
- H9 w. Q2 C% s1 U' ucase "Tue" : 8 c) H1 |( N5 V$ u8 o; W+ w
echo "今天星期二
" ; * _! q: t; E3 T# V- `$ p! M
break; 1 s# U6 p0 V  X
case "Wed" : 7 g7 P! R9 v" U: `; a- H  ]" T8 r
echo "今天星期三
" ;
+ H3 Q; n# @- r" U( `! C, _2 ?+ Zbreak; . R3 U2 X! E/ @5 Y7 b+ w/ I
case "Thu" :
& x+ n& d) k: I0 ^# e8 e* J; o) Hecho "今天星期四
" ; 1 e4 d2 Y& p2 ~0 K% k8 _3 M
break;
9 U3 c, L0 N3 S% v9 z( dcase "Fri" : 7 h  [" F0 g+ b: c9 H# Q
echo "今天星期五
" ;
9 G7 H" G# M( c9 O% T/ M, [4 tbreak; 3 X" N* z! ?. k) D- p8 I
default:
4 z% G: a: L+ ]( S+ m3 Q! W8 y& becho "今天放假
" ;
  m* ^( U& B4 B) w8 H5 Vbreak;
! d/ i4 m0 ^5 ?+ A* Y1 r}
+ q$ Q+ S9 u) o" H) J& Z?>
1 x/ L5 K6 [) x7 C9 g3 t这里需要注意的是break;别遗漏了,default,省略是可以的。
5 _4 o* W; w6 p, t  E  f& I4 i
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
3 I* |/ n6 F: M3 G+ D- Q& g
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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