打印本文
关闭窗口- 从 PHP 迁移到 ASP.NET
- 作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005/9/10 14:22:05
- 或
Private确定。开发过程中通常只使用 public 和 private。您可以使用上述任意关键字来声明模块、结构、类或实例变量。过程中只允许使用
Dim关键字,并且可访问性始终为 private。输出
PHP 中输出数据的典型方式是使用
echo()语言构造。ASP.NET 中与此最相似的是Response.Write()方法(或<%= %>构造,它只是Response.Write()的简写形式)。表 4 显示了向页面写入值的基本语法。表 4:基本输出
PHP Visual Basic .NET <?php$hello = "hi how are you ";echo $hello;?><%Dim Hello As String = "Hi how are you" & vbcrlfResponse.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 具有若干条件处理表达式,例如
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 > bResponse.write ("a is biggerthan b")ElseIf a = b ThenResponse.write ("a is equal tob")ElseResponse.write ("a is smallerthan 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 iCase 0description = "0"response.write ("i equals 0")Case 1description = "1"response.write ("i equals 1")Case 2description = "2"response.write ("i equals 2")Case Elsedescription = " i is not equalto 0, 1 or 2"response.write ("i is notequal 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 = 0Dim counter As IntegerFor counter = 1 To 100 Step 5sum += counterNextFor i = 1 to 100Response.write (i)Next I在 Visual Basic 中,这种循环类型被称为
For...Next循环,而在 PHP 中则称为For循环。在此示例中,我们使用了+=运算符作为在 PHP 中,可以使用sum = sum + counter的简写方式。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 = 1Do While counter i <= 10Response.write(i)counter i += 1Loop在 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
打印本文
关闭窗口