打印本文 打印本文  关闭窗口 关闭窗口
从 PHP 迁移到 ASP.NET
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005/9/10 14:22:05
Private 确定。开发过程中通常只使用 public 和 private。

您可以使用上述任意关键字来声明模块、结构、类或实例变量。过程中只允许使用 Dim 关键字,并且可访问性始终为 private。

输出

PHP 中输出数据的典型方式是使用 echo() 语言构造。ASP.NET 中与此最相似的是 Response.Write() 方法(或 <%= %> 构造,它只是 Response.Write() 的简写形式)。表 4 显示了向页面写入值的基本语法。

表 4:基本输出

PHPVisual Basic .NET<?php

$hello = "hi how are you ";

echo $hello;

?

>

<%

Dim Hello As String = "Hi how are you" & vbcrlf

Response.Write(Hello)

%>

然而,这些用于向浏览器发送输出的方法主要是为了保持与传统 ASP 的向后兼容性。ASP.NET 提供了新的基于控件且面向事件的模型,您只需在服务器控件上设置属性即可将数据输出到浏览器中。通过这种技术可以将布局与代码清楚地分开,从而简化了维护工作,并且在复杂情况下所需的代码要比 PHP 少得多。

<script language="VB" runat="server">Sub Page_Load(sender As Object, e As EventArgs)   TheDate.Text = DateTime.Now End Sub</script>The current date is: <asp:Label id="TheDate" runat="server"/>

此示例声明了一个名为 TheDate 的服务器端标签 (Label) 控件,并在该页面的 Load 事件中将此标签的 Text 属性设置为当前的日期和时间。此代码的 HTML 输出与其他两个版本相同,不同的是 Label 控件将自身呈现为 span 标记(其中包含所设置的任何标签文本)。

条件处理

IF/ELSE

PHP 具有若干条件处理表达式,例如 forwhileswitch foreach,但最常用的是 if/else 表达式。Visual Basic .NET 有几个非常类似的构造,其语法也很类似。表 5 对 PHP 和 Visual Basic .NET 中的等价条件逻辑进行了比较。

表 5:基本条件逻辑

PHPVisual Basic .NETif ($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 语句的对比

PHPVisual Basic .NETswitch ($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 循环

PHPVisual Basic .NETfor ($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:条件循环

PHPVisual 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 = 0Do   response.write (i)counterLoop While counter i > 0

但是,Visual Basic .NET 支持内置的循环功能,这是 PHP 所不支持的。该功能将对条件进行计算,直到条件为真时为止。

Foreach 循环

PHP 4(而非 PHP 3)包含一个 foreach 构造,它与 ASP.NET 以及某些其他语言中的构造非常类似。它只是为循环数组提供了一个简单的途径。foreach 只适用于数组,如果试图将其用于其他数据类型的变量或未初始化的变量,则会导致错误。Visual Basic .NET 中与此等价的循环是 For Each...Next

上一页  [1] [2] [3] [4]  下一页



打印本文 打印本文  关闭窗口 关闭窗口