返回列表 发帖

十天学会php之第二天

php的流程控制 # u9 e4 G( |! x7 H5 g$ b/ t! H2 P

: k3 M# ]# v! H7 S: ?% X/ o1if……else 循环有三种结构
. O! \5 u( r# l+ k2 S
第一种:只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下:
7 k  W, S  K3 y- r. Q# ~) T7 ]7 q( R! j0 o6 ]7 g
if (a) { statement }
/ }& Q, V1 j3 e7 N其中的 a 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}
( a5 \+ e& {% p7 d5 a6 x) s
范例:本例省略大括号。

" }" Z* R9 V6 c, {
+ [& x0 `/ z/ o2 ~/ ^4 X<?php
5 Q; x, a4 r9 b+ [/ Fif ($a==1) echo "我爱
php" ;
' V: Y( P# o( u* E) D?> ; Y5 M8 y; X' E- e$ r& o

2 U5 K5 _. o4 e( R% z* q这里特别注意的是,判断是否相等是==而不是=

5 R1 s+ F% G0 p& C3 D1 g3 u5 c5 F: P范例:本例的执行部分有三行,不可省略大括号。

9 a+ ~/ |% Y; }! {$ |% Q
" }( }9 r* I2 ^$ M2 W, \: A<?php
$ l. D+ ~0 h1 E) e6 {if ($a==1) { 6 E" I  i: k; W! g* ]/ j" v
echo "我爱
php" ;
" r3 ^- ], V5 y9 X, ]echo "<br>" ; + s- d3 L# O- I+ r
} " m3 I/ J% J* ^, q& Z
?> - V5 ~5 k) I* t3 ~) O8 x" [) K% N
2 m" p: \" T; M7 |8 _
第二种:除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下:

" t& ^. R6 }8 J8 j
4 T- `% Q2 e& X+ s" eif (a) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。
5 y6 F: B) x) r" V6 L
<?php + s% j  o, N9 q3 e! B# z; K$ c
if ($a==1) {
5 v2 E$ e; l2 E5 N- I! X- W' lecho "我爱
php1";
) P0 I9 h, E# ~echo "<br>";3 ]& v. \" S, Y0 D
} 7 J; q! C1 t0 W- J6 n
else {5 g: Y$ i7 F# ^- X1 H
echo "我爱
php2";( ~8 l2 s! M6 x, ]& R7 N* O  D
echo "<br>";
2 _' S8 D* w, R4 a+ Y} 0 F( x# x2 \# N- d* n0 b
?>
% Y( p3 Q3 C) q/ E4 O, v6 X6 j% ^9 V; C. B2 s2 w
第三种:是递归的 if……elseif……else 循环,通常用在多种决策判断时。它将几个 if……else 拿来合并运用处理。
0 U0 a% W1 e( ^3 b* |+ D
直接看下面的例子

+ _  w& X4 ?# P/ s% \<?php 1 p6 {  F* H8 O4 Z, H) }
if ( $a > $b ) {
( A. O  n' I" }0 \3 |. C8 |echo "a b
" ; " ?( s  R0 S6 b: U' v- ?
} elseif ( $a == $b ) {
. y& c* Y( P2 V% ?$ Lecho "a 等于
b" ; ; w* l3 L% F4 h  _1 A" ~2 N% \: g
} else { , M5 F5 e6 R2 @! r
echo "a b
" ; , E! ]4 z: h( x* F: J) ?. D
}
. P* U/ \- G$ y( {  X# h8 b' f  y?> 5 U4 z' }6 |! a  w9 A
! ^+ U/ Y; |7 B  D: q6 F4 l
2for循环就单纯只有一种,没有变化,它的语法如下
8 A- }1 }# s- k  ]. N0 j' d

# T& U: c$ m4 r% I9 z$ B; ofor (a; b; c) { statement }
" S# U3 u! n6 ], e) c  N/ R其中的 a 为条件的初始值。b 为判断的条件,通常都是用逻辑运算符号当判断的条件。c 为执行statement 后要执行的部份,用来改变条件,供下次的循环判断。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}

4 s( s+ N# _8 A7 @; L1 `下例是用 for 循环写的的例子。
9 J. P- b' O6 q. R3 i+ `! H
<?php
6 W2 x' a/ a( c7 B2 `0 H$ _for ( $i = 1 ; $i <= 10 ; $i++ ) { * D! b/ s. i: m# B8 i4 g, h- s
echo "这是第".$i."次循环
<br>" ; 7 t5 g, k/ Y% }# C9 @( u
} + V& ~( j4 ~: f% o
?>
+ F9 \; E0 C; w' C& i  t
( e4 r$ k) n( G+ L3switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

. z1 x) q$ M/ {5 d/ c0 m  `4 ^4 D9 G语法如下:( S1 j  f' h0 @  J( ]! @: Y
switch (a) { case 1: statement1; break; case 2: statement2; break; default: statementn; break; }
$ X3 `% H7 T+ V6 p7 O
其中的 a 条件,通常为变量名称。而 case 后的通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 ( ]4 Q0 _$ l% y7 w4 H$ [

* h8 P' t% U" i5 q8 ~; N* d9 d<?php 8 ~9 N+ Y) H: ~, W. }
switch ( date ( "D" )) { % T0 w, q* M( y! S+ C  R' {
case "Mon" :
' n8 S3 c/ a( J+ q$ N  P1 Techo "今天星期一
" ; 4 p4 K9 J/ }1 b( d
break; ' L/ a2 l9 h3 s( b6 D# N
case "Tue" :
! U. _( c  w0 d: z4 N. B7 |echo "今天星期二
" ; # x/ _  C0 U6 f: G+ D  ?" Q& N, o/ C
break; 0 ?4 ]( o+ \  s6 z! U
case "Wed" : 7 Z9 z/ e5 ^0 X( e
echo "今天星期三
" ; 8 i' @) x4 u/ k( }. w* T/ W6 T
break;
& z+ z0 P4 z0 h7 Dcase "Thu" :   ?7 Q! u! K: P9 T& L0 i: G
echo "今天星期四
" ;
. C9 `6 D+ f' }2 z( Ibreak; : ]  K8 D- I& s9 B0 ~* W
case "Fri" : 6 m0 n7 }- B) e/ h+ }# O
echo "今天星期五
" ; . o- w5 F; z% S! ^
break;
- p. \+ U- t! d/ r6 Tdefault:
) _8 ]) k5 {3 z$ v4 J6 ^6 Q( \' Y: N+ Xecho "今天放假
" ; ) Y# O) `+ i% h1 j' D  P9 S  z
break;
1 v* I, z3 G( S6 D6 P6 D} 8 `* j: l" m$ W- d; W
?>
8 Q; ~. h9 A' l' E1 n; L这里需要注意的是break;别遗漏了,default,省略是可以的。
& N1 T  X4 `$ f  A2 ^5 b. l
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

2 h2 |6 Z$ A$ S. `" v十天学会php之第二天就说到这里,第三天开始说数据库的使用。

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