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

十天学会php之第二天

php的流程控制   R0 O) }9 G9 j2 \- e5 Y1 l8 x7 v

- E7 ~# y' f& k+ D9 B5 z1if……else 循环有三种结构
7 M+ x7 g9 P3 s7 K0 o) S  k
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 6 S* X2 {2 F+ D
! i  D) O2 y; V# `; E: _, ^
if (a) { statement } 5 O, l. D; z$ d. }8 y
其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

( t$ N( [! G/ H: f% T" O范例:本例省略大括号。

$ b5 k2 i* Q4 k
' \; O1 `" W; C* N2 u8 O<?php
$ P! K, _2 h# y  O: Q) \: Jif ($a==1) echo "我爱
php" ; ! w7 s$ \5 i' q5 U7 H% V  S
?>
: ]5 b5 }5 H$ ~0 P) x" U9 u- ^* Q6 U
这里特别注意的是,判断是否相等是==而不是=

8 d, R6 ^5 Z4 a+ f& ?8 O7 ^范例:本例的执行部分有三行,不可省略大括号。

, [9 M$ R4 n( D7 s: B+ K" q" Z% ]) t0 m& G
<?php
! B: U) U  \; R5 K) E6 Hif ($a==1) {
9 R8 ~4 C8 Z" S! Recho "我爱
php" ;
. R. p, o  r' m9 R6 decho "<br>" ; - ]5 i  g5 w( w8 q
}
, S) h0 @: ]: X0 e6 O' P& z?> ) A+ d* S# y7 V& S- N3 ^% m8 P0 P
' W1 p$ a' j: B: W  {7 z1 q6 A9 i: d
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

+ N7 g  n% V- H, q- Q) N) X& B: i4 g1 |8 K
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。

  r* U( U5 a, }4 L3 L<?php
8 r) [, Z6 Y! N* N3 cif ($a==1) {
% S; j# [8 v7 xecho "我爱
php1"; . G5 r; ]/ }) ^
echo "<br>";' E: d' Z, ^# E, Q1 Z5 p; w9 y
} * F% P$ f% e6 q) L8 E
else {
) f. F+ w1 L. S& Q  Z- h8 S/ m/ fecho "我爱
php2";
2 W* X  O' C& X; K$ k  @echo "<br>"; ! M% s" C. P' J/ A9 g' L5 Y
} 6 J* t8 e/ d+ o4 g$ f+ K: Z
?> ) x8 |& ]0 K" K0 E* f6 x- z# ?  i
# k: M4 G- Z$ M1 o  T
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
" M2 ^  b  @! S4 _" y
直接看下面的例子
6 |- U+ g! L9 S* I! S
<?php
+ a% v1 z' m" _" O' T; w. tif ( $a > $b ) {
) x! k0 p7 k: h9 Q( aecho "a b
" ;
8 M, s# x; t+ s+ O8 \1 F} elseif ( $a == $b ) {
2 M& u" A5 ~% M* d$ z* K* t$ c9 R, D, Vecho "a 等于
b" ;
7 \; V7 h( \# A. L7 Y} else {
) }) s; l9 p2 C- e+ A% o* Decho "a b
" ;
; s7 [4 \5 d# i* G3 v} " r, l9 W. U$ h3 w
?>
. s8 `) _9 E& z/ N2 h2 x  n% C. h6 ~; {0 w6 B
2for循环就单纯只有一种,没有变化,它的语法如下
. e& M, T$ l9 S2 n  W! t

9 l8 W1 X% d7 [9 P* {; afor (a; b; c) { statement } . x; C% N. W. }6 x( J% ^+ D
其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
: V  F" I$ X0 o0 m* _/ A
下例是用 for 循环写的的例子。

1 e3 I  a$ C& K( I8 ?" D* |! A<?php 8 L0 N+ ~4 h: ?0 }3 S
for ( $i = 1 ; $i <= 10 ; $i++ ) {
+ p2 |% P( q5 u8 M" y5 [7 i# fecho "这是第".$i."次循环
<br>" ; % v9 b4 G0 P' S' k' i% ~- m" S
}
7 r7 j) S% S7 n?> 6 P6 Q; a9 y6 h# o. A
) T  k+ o8 S! c+ e/ \' s
3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

% C7 o5 s' }" }) U4 E语法如下:5 c5 F5 J) Z9 a' v& }* {
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
; l5 q, `1 H* o4 L6 Z
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
& a8 P5 L$ P! O& ]  |$ {
. W" v1 c+ u# ^  I6 o& _* v1 @<?php 8 v" O, W/ F. \  Z& e6 W
switch ( date ( "D" )) {
2 C& D1 N! T: y4 Z3 H6 @case "Mon" :
9 ~9 v7 Y# u* w# F) G' O* N' d9 D5 Decho "今天星期一
" ;
! ~- V. W5 a- Z5 m$ ?& v! ?) X0 Ubreak;
, J8 g/ [( b1 M2 |case "Tue" : 7 a1 A( @) O& w# @+ A
echo "今天星期二
" ; 4 Y' A* j$ Y+ Z  s* E+ c( w
break;
0 Y7 }: p6 H; n' y7 y/ ecase "Wed" :
+ t* |2 @0 Y+ {2 i+ T: W/ }* vecho "今天星期三
" ; ; X: {0 ]" {  k8 y' M; {
break;
/ }7 P" t' d9 W- _case "Thu" :
- B( w* Y. a$ Q% y0 S7 ?. ^echo "今天星期四
" ; ) s' J7 \5 c* U( S+ ]+ P
break; 6 ^/ H( D7 b" y3 e. A  S8 L; Y9 E* {6 c
case "Fri" :
. V, ^/ m$ E4 \( j. d2 vecho "今天星期五
" ; 9 n4 o5 p6 M3 E
break;
$ L1 [; E  S3 ?default:
) _; ]& e- w2 b: Mecho "今天放假
" ;   Y. j: ]- c  c
break; ; E# i% S' C. c& G
}
" m# B+ q' [+ ~# N* U4 m?>
+ d7 c+ o/ k7 f1 G9 [; d6 k4 {3 ?, a这里需要注意的是break;别遗漏了,default,省略是可以的。
) V- `3 J  ^. s
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
' N! J9 \; S; ~1 ^' k! y1 o
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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