日期:2010-08-10  浏览次数:20493 次

    数组
  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