返回列表 发帖

十天学会php之第二天

php的流程控制 1 W4 X9 C( F. [2 n
# E! D; F8 Y  j* o, H( x
1if……else 循环有三种结构

6 b* F5 j$ D( Q/ o' l第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
7 c& n. F# g) B! E9 b8 m4 K9 D# \& V% q! \! x
if (a) { statement }
2 _- V" S3 x# u5 |' j( Q其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
4 p, q3 W& E8 r  W( I$ G
范例:本例省略大括号。

# |7 P0 }, R3 k, H3 e$ B/ ~, a) E" C( S$ J
<?php
) E, I. u# b' i) }7 k  A& u6 _0 O1 }if ($a==1) echo "我爱
php" ;
- [% K9 c0 y! P. `?> 5 F9 z9 _" L+ M& g/ |7 Y. f

+ R+ w5 E2 q- u) E0 C; Z& {3 [# d这里特别注意的是,判断是否相等是==而不是=
2 F1 K7 S' V( S6 S. A& w4 t% T
范例:本例的执行部分有三行,不可省略大括号。

- H, y$ ^5 O. [) v$ X% f3 x; y5 K0 D6 s* W# A8 m
<?php ' w* b1 E: Q" V8 k
if ($a==1) { 5 ]! s- ~+ g  k! _' H' g: p
echo "我爱
php" ;
5 g1 f6 r7 S) x: a- Zecho "<br>" ; % S0 T& M  k! L# p) q
}
5 q! u; ]  a. C3 U8 u?>
( {( i* r! K# q! g' F6 B) O
1 P1 d8 V$ I3 i6 J" U第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

9 {6 {2 G) q: a/ \2 ]9 ?5 `5 T  K3 s+ q/ ^( w$ k' D$ o; Y
if (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
* s  C! G% h2 g+ d
<?php
; l- _1 W( X4 n- _if ($a==1) {
( ?& D) Z! p( n% X# K6 zecho "我爱
php1";   r$ d: K" b* B
echo "<br>";2 j6 Y0 Y. U. `0 g# m
} 6 E( ^, D6 j  @
else {
/ c; `3 M" n- Recho "我爱
php2";
( q( e% \# {* }echo "<br>";
$ t8 v: k0 N$ M4 }: @} / ?) R+ S) ^- q/ h" K
?> 7 V1 U! d  ^6 ]. Y

" I9 D, d6 k6 z+ l7 O# M$ @$ w第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
- v( B9 G, O3 v( B( K
直接看下面的例子

+ p0 {0 j2 t- M<?php
3 Z+ J, c8 S6 e; l7 f8 G8 Vif ( $a > $b ) {
4 F4 t2 U; t1 Q- W9 Qecho "a b
" ; 2 A7 Q' A  a6 ~% u. Z+ B
} elseif ( $a == $b ) {
. W% k3 j9 k* Kecho "a 等于
b" ;
1 G& @: \# A7 z9 Y+ C# M; A} else { 5 l9 L0 s8 n+ W& g9 t5 V
echo "a b
" ; + Z9 t, j: X# P! v. {% S, }0 j
}
1 X5 h3 Q5 F+ q  }: F- B; v  E" R?> 1 m& {- C: a+ `& V% L% }
7 H! X1 K' s' T- |8 H! X2 ]
2for循环就单纯只有一种,没有变化,它的语法如下

4 [5 \2 M0 {7 L; V" h
' B2 e3 W7 a9 x: Wfor (a; b; c) { statement }
' Z0 z1 G! {/ \% q! p  q( D其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
: A# S0 x$ x( p+ R, F4 N
下例是用 for 循环写的的例子。
2 h2 z! N# n6 s% n: c) w
<?php
8 a; I+ Y+ k- ^" A6 m+ S* V) Cfor ( $i = 1 ; $i <= 10 ; $i++ ) {
- l" O, E6 \7 uecho "这是第".$i."次循环
<br>" ;
5 ^$ E) \' p) {; j1 E  U}
$ j- }* b2 r3 @( q( t?>
. L8 a0 H" B5 O. Z7 [
, b6 p4 W, G  K3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
# _( e  K) E. k' K: l
语法如下:; _0 @& J+ y8 q- \
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; } + c) ?' i, R' G+ d8 Z" a* P( s
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
* b7 y" V  h- h* c% T. R9 j3 v6 o+ U* e$ X6 Y" B  k8 g  ]
<?php ! y+ t' S" G0 i3 v6 B! P- h
switch ( date ( "D" )) {   h0 N6 ^% c7 b7 ]; E8 j% V7 s
case "Mon" : . _2 ?) e  L1 ]- x* J+ e
echo "今天星期一
" ; 0 s* u  G. P# X- m0 U+ f
break;
0 B& V5 O" H4 I  C3 B# l5 P7 Dcase "Tue" : ' L$ ~6 t9 [% _/ e
echo "今天星期二
" ;
4 a% |* m# l" y5 r+ i' g! q) N; Bbreak; : I$ e- q5 X3 V
case "Wed" :
! ?' K6 s  C4 F5 N5 W* v* techo "今天星期三
" ; 4 E/ x. e2 ?- R: Q; g$ o
break; 8 _- L* @0 s# u  u
case "Thu" :
* X2 d& P0 p7 U/ Recho "今天星期四
" ; 2 L1 I; T& x4 A" w) o
break; 0 i: Z$ w/ ?" {
case "Fri" :
/ B: n* t6 N; u  \echo "今天星期五
" ; 8 n$ h' v4 j) ^+ ~
break; ' \. y+ |0 {/ i% S( [
default:
( R+ J" e  M0 w! f( Necho "今天放假
" ;
! P, [& o8 d# p7 ~break;
& j# I+ \& o* }$ i4 \  W' N}
, c/ ~% c: I' m' f5 {?> 9 d! ]% h4 ^2 J7 U
这里需要注意的是break;别遗漏了,default,省略是可以的。

6 [3 G) t: V! @+ z: N1 A) q很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
* t& v  G  F8 D6 p$ T5 z( u4 l6 \0 ^* B
十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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