十天学会php之二

上一篇 / 下一篇  2007-04-25 15:02:55 / 个人分类:PHP

51Testing软件测试网Gj!l,Oo"W3P7i |

学习目的:掌握php的流程控制 51Testing软件测试网 X'{4F%gY#b_9G

-w(`@'RE T:Q1dn01、if..else 循环有三种结构
I$f.Fg O0
!gz E Yn5pee0第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: 51Testing软件测试网T `l%Su)e3@%e
51Testing软件测试网x Q+J0v5Oj;G
if (expr) { statement }
{{L q5a+gdR051Testing软件测试网b8QRr)~/c1q7V+EgJ
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
!MY,yajf z7K/[0
q#n Nv!J@]"~b+f0范例:本例省略大括号。 51Testing软件测试网)E0~9GP7g UJ_

"R&[.Eg'G,n9C0<?php
6}IWs o![M0if ($state==1)echo "哈哈" ; 51Testing软件测试网 E;q4I vP!x$JV
?>
4{'~p:R|;Mw0
K/Y1pt1mD|1Yg0这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 51Testing软件测试网x0mI(vs%Z5p&vR

6_&y{2j1t+d:IU![0范例:本例的执行部分有三行,不可省略大括号。
Rn mo"X%SA051Testing软件测试网p8X5p8B5A2{
<?php
}St \Ow X@4h0if ($state==1) { 51Testing软件测试网0AG){1kk:F8k0N
echo "哈哈 ;
:] R4n.|0f:N0echo "<br>" ; 51Testing软件测试网e!yH^nN
}
j?yerB/I0?>
y|y{!bN051Testing软件测试网6M?7z*zw)J

+{+sb(eP0第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 51Testing软件测试网A_E]M"hV_
51Testing软件测试网/g%JK6e$q$n4q _
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 本文来自 444p.com
$@'}I)H[;tO aD)h"b*j!c0<?php
L|9A%X)yJ.i5Z0if ($state==1) { 51Testing软件测试网+wE]8\!e
echo "哈哈" ; 51Testing软件测试网mA"G%b1~8J
echo "<br>";
$a.j8@2[5Nl#@&k9r_0} 51Testing软件测试网6Zn]2l&WV
else{
+l:T5_~*[(p0echo "呵呵";
$m0~\vg R4Y-T0echo "<br>";
.ft XY*].F l,uU5_0}
uiP5wf'g[ [/Ye0?> 51Testing软件测试网 f:d(~[:Yh?I M+H"L
51Testing软件测试网z h1n:Ogn n
51Testing软件测试网0Yp6O w3T @e_9`
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。
1C Q1lY4b-C&Y+j1V4s051Testing软件测试网;u']ic1V,j | c
直接看下面的例子 51Testing软件测试网'm*W(D*D E`W4G,P kN

SPQ9L G!sm-f9_0<?php
+?|Q-]vO:nm3h;B0if ( $a > $b ) { 51Testing软件测试网"]V s9q] Q
echo "a 比 b 大" ;
$R`%n*cAX0} elseif ( $a == $b ) {
(]y+H1{\ I:V0echo "a 等于 b" ; 51Testing软件测试网v/d:Z9J%X{jg
} else {
S Cp IS:p0echo "a 比 b 小" ; 51Testing软件测试网0r ?#i?5a R7i
} 51Testing软件测试网 Y$b{ Zw7iXaYD1oG
?> 51Testing软件测试网+E+|1s}F3eO3O
51Testing软件测试网]0GI:_4r/b P4m ]H,X
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。
E;}3L8T4F l g0
0C'~W7t"x`x02、 for 循环就单纯只有一种,没有变化,它的语法如下
kZ/~a'Du051Testing软件测试网2R&N`K;ZTD{
for (expr1; expr2; expr3) { statement } 444p.com学习之家 51Testing软件测试网C'Ni XwU
51Testing软件测试网 L6UOX[}8b$I2V
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 51Testing软件测试网+u9?)nA4H.a
51Testing软件测试网9fm&`0T*J)z4pk)\
下例是用 for 循环写的的例子。
? oQa$GM nWN's'd0
7C9U7c-r ^s0W:^0<?php 51Testing软件测试网+YF;t:Lb)e
for ( $i = 1 ; $i <= 10 ; $i ) {
vk VXb$n"^0echo "这是第".$i."次循环<br>" ;
l,`&wW$QZ+V6Z:Buol0} 51Testing软件测试网F7H I ['F/\y w
?> 51Testing软件测试网1BM:\|p

JK%|]*MX$W03、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。
0f5umW4e.KP S$h0
eS5a!DFi0语法如下 51Testing软件测试网}r4]AF:J2b s
51Testing软件测试网hXY3Zw4w
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } 51Testing软件测试网d)rCSE+u'Z

EsTy]x&Y(m|0其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
7tQ'M7`v}0
v ?)|1vK~r4RP(GcI0<?php
q^&j8L]?Z9D0switch ( date ( "D" )) { 51Testing软件测试网4G8Z.a(oYj

444p.com学习之家51Testing软件测试网f/kWX4F9bR

tIL0W#K?m C*Z)GZ0
M-n'tJ.L$x'EC#cm0case "Mon" : 51Testing软件测试网*{'?+~4I,Y~{ t,~d
echo "今天星期一" ; 51Testing软件测试网Ia?C}9\VB
break; 51Testing软件测试网1pyO5S-_u A
case "Tue" :
9u*t6X0y3X6W8Fz0echo "今天星期二" ;
+G mzc|3w"P4Z0break;
f)M.A!h1^f Sd2l7S(g ^0case "Wed" :
yGYb&l,d0echo "今天星期三" ; 51Testing软件测试网&\7y!Xq(lO4~
break;
n \})fl0case "Thu" : 51Testing软件测试网'ix;_ JA@e/p4s
echo "今天星期四" ;
0tpXE9G-c0break; 51Testing软件测试网)Mt^.fL1u
case "Fri" :
T0l$]^+F4ym V5B}0echo "今天星期五" ;
yTCE,f z2Z-q0break; 51Testing软件测试网1Bz.b4WD^N"w
default:
3t#gCXNS&VYI0echo "今天放假" ; 51Testing软件测试网ZT-lg7M*{"eC!T!epY
break; 51Testing软件测试网$dt8Y(P m@!Zl
}
%r!a5a'm!M-}k(Z0?>
7r$lZ"R*af&F@s^v0
'].P6JK7k8A&AG E0这里需要注意的是break;别遗漏了,default,省略是可以的。 51Testing软件测试网*t+K+};?&jJ^5~0T

,FdI-]u&s3q(v0很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
.V9a@.b#Q4[0

J A!M:RKb r9w0

TAG: PHP

 

评分:0

我来说两句

Open Toolbar