学习目的:掌握php的流程控制 z/rN+ ,
bU:"dqRm<
1、if..else 循环有三种结构 ^#%$?w>wI
+V7*vlx-
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 5'>(|7~%\
+|(
eP_
if (expr) { statement } x_(B7ob
)kgy L,9
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 ~&4,w9b)j
it>FG9hVo
范例:本例省略大括号。 mKnkHGM
haa[ob6T
<?php Vv=d*
if ($state==1)echo "哈哈" ; #.tF&$ik
?> qdj,Qz9ly
FJ>| l#nO
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 m=NX;t
m2<sVTN`^
范例:本例的执行部分有三行,不可省略大括号。 )X| uOg&|
{u46m
<?php -oe&1RrdVg
if ($state==1) { }N4=~'R
echo "哈哈 ; eB!0:nHN
echo "<br>" ; WZ~rsSZSV
} r"U$udwjg
?> |$9k
z31
&&(sZGw
S|!U=&
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 g4j?E{M?
-@L*i|A
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 d:=5y)
<?php i)8,u
if ($state==1) { WGVvBX7#
echo "哈哈" ; b\VY)=U
echo "<br>"; iu&'v
} u&
:-&gva
else{ ]eP&r?B
echo "呵呵"; MF]s(7U4`
echo "<br>"; > -Jd@7-
} bv$)^
?> $N5}N\C:a
V!3O
1
01#a
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 =?T'@C
@;d(>_n
直接看下面的例子 [Fr.ik
LYavth`@h
<?php Eh0R0;l5>
if ( $a > $b ) { *wyaBV?*K
echo "a 比 b 大" ; i>q]U:U
} elseif ( $a == $b ) { g;eMsoJG
echo "a 等于 b" ; IM)\-O\Wd
} else { 0 Co_,"
echo "a 比 b 小" ; !lL21C6g+
} E@P8-x'i
?> "i4@'`r
;l5F
il,3
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 zn>*^h0B
Ry[VEn>C1
2、 for 循环就单纯只有一种,没有变化,它的语法如下 x@Z?DS$)
=f{V<i~q
for (expr1; expr2; expr3) { statement } )aOg_*~
srJ,Jr(
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 t#}/VnSQ
&d 9tR\}
下例是用 for 循环写的的例子。 p^7ZFUP
_~=X/I R
<?php ,S}[48$
for ( $i = 1 ; $i <= 10 ; $i ++) { x(5>f9b b
echo "这是第".$i."次循环<br>" ; do7 [Nj
} &D>e>]E|P
?> |zGwt Z
70a7}C\/o
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 N
0&h5
Yep(,J~'
语法如下 lySeq^y?Q
2\lUaC#E
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } RBJgQ<j8
'1|r+(q|2
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 4U~[8U}g
4=>/x90y
<?php C B=H1+
switch ( date ( "D" )) { r2qxi'
case "Mon" : oAA%pZ@
echo "今天星期一" ; dBX%/
break; \O^b|0zc
case "Tue" : D%Hz'G0|
echo "今天星期二" ; u==bLl=$
break; UP 75}h9
case "Wed" : 73rr">
9#0
echo "今天星期三" ; S3`zB?7,
break; uRh`qnL
case "Thu" : 0^5SL/2
echo "今天星期四" ; `\(Fax
break; {(Drw~/@
case "Fri" : [>oq~[e)?
echo "今天星期五" ; 89U<9j
break; P+wV.pF|
default: /^
hB6_'D
echo "今天放假" ; yfnqu4Cn
break; uK="#1z cC
} +kd88Fx
?> }aRV)F
959&I0=g"
这里需要注意的是break;别遗漏了,default,省略是可以的。 mBhG"0:
wtndXhVC4>
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 d/+sR@\
T""X~+{Z@
今天就说到这里,明天开始说数据库的使用。