当前位置:中国站长下载文章中心网页编程.NET编程 → 从 PHP 迁移到 ASP.NET(4)

从 PHP 迁移到 ASP.NET(4)

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 8:39:41
     条件处理
  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
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。