日期:2010-08-10 浏览次数:20547 次
数组
PHP 中的数组的功能与 Visual Basic .NET 中的数组的功能截然不同。PHP 中的数组实际上是关联数组,但是可以像索引或关联数组那样使用。而 Visual Basic .NET 中的数组是索引数组。Visual Basic .NET 不支持关联数组(但您可以自己创建它们,请参阅下面的“集合”)。其他 ASP.NET 语言支持这些类型的数组,但 Visual Basic .NET 并不支持,这可能给 PHP 开发人员提出了一个难题,因为他们并不习惯使用这种更常见的索引数组,并且可能会希望在 Visual Basic .NET 中创建关联数组模型。表 10 显示了 PHP 和 Visual Basic .NET 中的简单数组示例。
表 10:创建数组的示例
PHP Visual Basic .NET
$a = array (0,1, 2); Dim MySingleArraya() As Integer =
New Integer (2) {0,1,2}
与其他变量一样,Visual Basic .NET 数组中的变量也是使用 Dim 语句声明的。变量名后面带有一对或多对括号,表明它是数组而不是标量(包含单个值的变量)。
创建 Visual Basic .NET 数组时,还必须将其声明为保存特定类型的数据。如果指定的类型是 Object(作为 .NET 中所有对象类型的基础的普通类型),则此数组可以保存任何类型的数据,但是从数组中检索值时,必须将值转换为原来的类型。
Visual Basic .NET 数组可以是嵌套的数组,也可以是多维数组。Visual Basic .NET 中有许多与 PHP 相对应的用于处理数组的函数,但有一个例外。由于 Visual Basic .NET 不支持关联数组,因而不存在用于根据数组的“主键”来访问、索引或执行任何操作的函数。Visual Basic .NET 中不存在这样的“主键”。
虽然本文多次提到 Visual Basic .NET 不支持关联数组,但是可以创建集合来代替数组。集合与关联数组有些相似,可以使用集合来解决某些类似的问题。
在某些情况下,将项目存储在集合中要比存储在数组中更有效。
如果要处理一组小型的动态项目,则可以使用集合。要创建集合,只需如下面的示例代码所示声明并实例化一个 Collection:
Dim myCollection As New Collection()
然后,您可以使用 Add 方法向集合中添加成员。在此示例中,我们创建了四个字符串并将它们添加到集合中。您还可以选择添加一个唯一的 String 值作为集合成员的主键。该值作为 Add 方法的第二个参数传递给集合。
Dim w, x, y, z As String
w = "key1"
x = "key2"
y = "key3"
z = "key4"
myCollection.Add(w, "1")
myCollection.Add(x, "2")
myCollection.Add(y, "3")
myCollection.Add(z, "4")
虽然这看起来类似于在 PHP 中创建关联数组,但集合是一种截然不同的事物,因为它本身就是一个对象。对于转到 ASP 的 PHP 开发人员,我们建议在尝试在 Visual Basic .NET 中创建关联数组模型之前先了解一下 Microsoft 的 Visual Basic .NET Language Specification。
管理状态
任何 Web 应用程序中都很常见的一个任务就是管理状态,该任务通常是使用 Cookie 或应用程序状态管理构造(如 Session 变量)来完成的。Visual Basic .NET 具有与 PHP 类似的用于处理状态的方法。
设置和检索 Cookie
在这两种环境中设置 Cookie 都是比较繁琐的。表 11 显示了在这两种语言中编写然后读取 Cookie 的示例。
表 11:设置和检索 Cookie
PHP Visual Basic .NET
<?php
$value = 'something from
somewhere';
setcookie ("TestCookie",
$value,time()+3600); /*
expire in 1 hour */
?>
and to retive the set cookie
<?
echo $_COOKIE["TestCookie"];
?>
Dim value as string = "something from
somewhere"
Dim myCookie As New HttpCookie = New
HttpCookie("Something from
somewhereTestCookie")
Dim now as DateTime = DateTime.Now
myCookie.Value = now.ToString()value
myCookie.Expires = now.AddHour(1)
Response.Cookies.Add(myCookie)
'and to retrieve the set cookie
Response.Write(Request.Cookies["What we
setTestCookie"}.Value}
设置和检索 Session 变量
ASP.NET 中的 Session 变量与 PHP 中的 Session 变量非常类似。这两种环境中的 Session 变量都为确保 We