使用变量和常量
变量是计算机内存中已命名的存储位置,其中包含了数字或字符串等数据。变量
包含的信息被称为变量的值。变量使用用户便于理解脚本操作的名称为用户提供
了一种存储、检索和操作数据的途径。
声明和命名变量
命名和声明变量应遵循脚本语言的规则及指导。即使在使用变量前不需要去声明
变量,也应养成在编程时声明变量的良好习惯,因为这样有助于防止错误发生。
声明一个变量意味着告诉脚本引擎,有一个特定名称的变量,这样就可以在脚本
中引用该变量。
VBScript
VBScript 并不需要声明变量,但在使用所有变量前声明它们是一种好的脚本书写
习惯。要在 VBScript 中声明变量,请用 Dim、 Public 或 Private 语句。例如
:
可以在需要显式声明变量的 .asp 文件中用 VBScript Option Explicit 语句。
Option Explicit 必须在任何一个 ASP 指令之后及任何一个 HTML 文本或脚本命
令之前出现。该语句仅影响用 VBScript 书写的 ASP 命令,而不会影响 JScrip
t 命令。
关于这些命令的详细信息,请参阅 VBScript 语言参考。
JScript
Microsoft JScript 仅当变量为本地过程变量时才需声明,但在使用所有变量前
声明它们是一种好的脚本书写习惯。要声明一个变量,请使用 var 语句。例如:
有关 var 语句的详细信息,请参阅 JScript 语言参考。
变量作用域
变量的作用域即生命期,决定哪些脚本命令可访问变量。在过程内部声明的变量
具有局部作用域。每执行一次过程,变量就被创建然后消亡。而过程外部的任何
命令都不能访问它。在过程外部声明的变量具有全局作用域,其值能被 ASP 页上
的任何脚本命令访问和修改。
声明变量时,局部变量和全局变量可以有相同的名称。而改变其中一个的值并不
会改变另一个的值。如果没有声明变量,则可能不小心会改变一个全局变量的值
。例如,以下脚本命令返回值 1,虽然有两个名为 Y 变量:
由于变量没有显式声明,以下的脚本命令将返回 2。当过程调用将 Y 设置为 2
时,脚本引擎认为该过程是要修改全局变量:
养成显式声明所有变量的编程习惯可以避免许多问题。尤其在当您用 #include
语句将文件包含进 ASP 主页时,就显得更为重要。一个独立文件中被包含的脚本
是被当作整个包含它的文件的一部分来处理的。用不同的名称来命名主脚本和被
包含脚本中用到的变量,这容易被遗忘,除非声明变量。
为变量赋予会话或应用程序作用域
全局变量仅在单个 ASP 页中可用,要使它在单个 ASP 页之外可用,就必须为变
量赋予会话或应用程序作用域。会话作用域变量对一个用户所请求的 ASP 应用程
序中的所有页都是可用的。应用程序作用域变量也如此。对单个用户来说,会话
变量是存储信息的最佳途径,例如,首选项、用户名或用户标识。对于一个特殊
应用程序的所有用户,应用程序作用域是存储信息的最佳途径,例如,应用程序
特定的问候语或应用程序所需的初始值。
ASP 提供两个内建对象来让您存储变量:Session 对象和 Application 对象。
您也可以创建具有会话或应用程序作用域的对象实例。详细信息,请参阅 设置对
象作用域。
会话作用域
要为变量赋予会话作用域,将该变量存储到 Session 对象中即可,方法是为该对
象的已命名条目指派一个值。例如,以下命令将两个新的变量存储到 Session 对
象中。
要 Session 对象中检索信息,可以用输出指令 (