条件处理
if/else
php 具有若干条件处理表达式,例如 for、while、switch 和 foreach,但最常用的是 if/else 表达式。visual basic .net 有几个非常类似的构造,其语法也很类似。表 5 对 php 和 visual basic .net 中的等价条件逻辑进行了比较。
表 5:基本条件逻辑
php visual basic .net
if ($a > $b) {
print "a is bigger than b";
} elseif ($a == $b) {
print "a is equal to b";
} else {
print "a is smaller than b";
}
if a > b
response.write ("a is bigger
than b")
elseif a = b then
response.write ("a is equal to
b")
else
response.write ("a is smaller
than b")
end if
切换
切换语句是大多数编程语言的常见语言构造,用于通过多个值对单个表达式进行测试。它常用于替换包含多个 elseif/else 块的 if 语句。
图 6 对 php 的 switch 语句与 visual basic 的 select case 语句进行了比较。
表 6:switch 与 select case 语句的对比
php visual basic .net
switch ($i) {
case 0:
print "i equals 0";
break;
case 1:
print "i equals 1";
break;
case 2:
print "i equals 2";
break;
default:
print "i is not equal to 0,
1 or 2";
}
select case number i
case 0
description = "0"
response.write ("i equals 0")
case 1
description = "1"
response.write ("i equals 1")
case 2
description = "2"
response.write ("i equals 2")
case else
description = " i is not equal
to 0, 1 or 2"
response.write ("i is not
equal to 0, 1 or 2 ")
end select
循环
另一个非常常见的控制构造是循环。php 和 .net 都支持若干不同的常见循环类型。
表 7:for 循环
php visual basic .net
for ($i = 1; $i <= 100; $i++) {
print $i;
}
dim sum as integer = 0
dim counter as integer
for counter = 1 to 100 step 5
sum += counter
next
for i = 1 to 100
response.write (i)
next i
在 visual basic 中,这种循环类型被称为 for...next 循环,而在 php 中则称为 for 循环。在此示例中,我们使用了 += 运算符作为 sum = sum + counter 的简写方式。在 php 中,可以使用 break; 语句来中断循环。而 for...next 循环可以通过 exit for 语句中断。
条件循环
只要某个条件计算为 true,条件循环便会持续重复一组指令。表 8 显示了这两种语言中的基本条件循环示例。
表 8:条件循环
php visual basic .net
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
dim counter i as integer = 1
do while counter i <= 10
response.write(i)counter i += 1
loop
在 visual basic 中,这种循环类型称为 do...loop 语句,或 while 循环。php 也支持 do...while 循环,该循环与 while 循环非常类似,不同之处在于它是在每个循环的结尾而不是开始检查真假表达式。 do...while 循环与常规 while 循环的主要差别是前者会确保运行第一个循环(因为只在该循环的结尾检查真假表达式),而常规的 while 循环则不一定运行。(因为它在每个循环的开始检查真假表达式,如果它一开始便计算为 false,该循环将立即结束执行。)
下面给出了一个 php 中这种情况的示例:
$i = 0;
do {
print $i;
}
while ($i>0);
此循环只运行一次,因为在第一次循环后检查真假表达式时,表达式计算为 false($i 不大于 0),所以循环将停止执行。
在 visual basic .net 中,您可以执行同样的操作:
dim counter i as integer = 0
do
response.write (i)counter
loop while counter i > 0
但是,visual basic .net 支持内置的循环功能,这是 php 所不支持的。该功能将对条件进行计算,直到条件为真时为止。
foreach 循环
php 4(而非 php 3)包含一个 foreach 构造,它与 asp.net 以及某些其他语言中的构造非常类似。它只是为循环数组提供了一个简单的途径。foreach 只适用于数组,如果试图将其用于其他数据类型的变量或未初始化的变量,则会导致错误。visual basic .net 中与此等价的循环是 for each...next 语句。表 9 显示了在这两种语言中循环数组的示例。
表 9:foreach 循环
php visual basic .net
$i = 0;
foreach($a as $v) {
print "\$key[$i]$v \n";
$i++;
}
for each v in a
response.write a(v) (v & vbcrlf)
next
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器