荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: tang (独孤九剑〖玄铁重剑〗), 信区: Homepage
标  题: [转载] ASP 中 文 简 明 教 程(5)
发信站: BBS 荔园晨风站 (Sun Apr 11 20:56:58 1999), 站内信件

【 以下文字转载自 Program 讨论区 】
【 原文由 zzt 所发表 】
使用变量和常量

变量是计算机内存中已命名的存储位置,其中包含了数字或字符串等数据。变量
包含的信息被称为变量的值。变量使用用户便于理解脚本操作的名称为用户提供
了一种存储、检索和操作数据的途径。

声明和命名变量

命名和声明变量应遵循脚本语言的规则及指导。即使在使用变量前不需要去声明
变量,也应养成在编程时声明变量的良好习惯,因为这样有助于防止错误发生。
声明一个变量意味着告诉脚本引擎,有一个特定名称的变量,这样就可以在脚本
中引用该变量。

VBScript

VBScript 并不需要声明变量,但在使用所有变量前声明它们是一种好的脚本书写
习惯。要在 VBScript 中声明变量,请用 Dim、 Public 或 Private 语句。例如


<% Dim UserName %>

可以在需要显式声明变量的 .asp 文件中用 VBScript Option Explicit 语句。
Option Explicit 必须在任何一个 ASP 指令之后及任何一个 HTML 文本或脚本命
令之前出现。该语句仅影响用 VBScript 书写的 ASP 命令,而不会影响 JScrip
t 命令。

关于这些命令的详细信息,请参阅 VBScript 语言参考。

JScript

Microsoft JScript 仅当变量为本地过程变量时才需声明,但在使用所有变量前
声明它们是一种好的脚本书写习惯。要声明一个变量,请使用 var 语句。例如:


<% var UserName; %>

有关 var 语句的详细信息,请参阅 JScript 语言参考。

变量作用域

变量的作用域即生命期,决定哪些脚本命令可访问变量。在过程内部声明的变量
具有局部作用域。每执行一次过程,变量就被创建然后消亡。而过程外部的任何
命令都不能访问它。在过程外部声明的变量具有全局作用域,其值能被 ASP 页上
的任何脚本命令访问和修改。

声明变量时,局部变量和全局变量可以有相同的名称。而改变其中一个的值并不
会改变另一个的值。如果没有声明变量,则可能不小心会改变一个全局变量的值
。例如,以下脚本命令返回值 1,虽然有两个名为 Y 变量:

<%

Dim Y

Y = 1

Call SetLocalVariable

Response.Write Y

Sub SetLocalVariable

Dim Y

Y = 2

End Sub

%>

由于变量没有显式声明,以下的脚本命令将返回 2。当过程调用将 Y 设置为 2
时,脚本引擎认为该过程是要修改全局变量:

<%

Y = 1

Call SetLocalVariable

Response.Write Y

Sub SetLocalVariable

Y = 2

End Sub

%>

养成显式声明所有变量的编程习惯可以避免许多问题。尤其在当您用 #include
语句将文件包含进 ASP 主页时,就显得更为重要。一个独立文件中被包含的脚本
是被当作整个包含它的文件的一部分来处理的。用不同的名称来命名主脚本和被
包含脚本中用到的变量,这容易被遗忘,除非声明变量。

为变量赋予会话或应用程序作用域

全局变量仅在单个 ASP 页中可用,要使它在单个 ASP 页之外可用,就必须为变
量赋予会话或应用程序作用域。会话作用域变量对一个用户所请求的 ASP 应用程
序中的所有页都是可用的。应用程序作用域变量也如此。对单个用户来说,会话
变量是存储信息的最佳途径,例如,首选项、用户名或用户标识。对于一个特殊
应用程序的所有用户,应用程序作用域是存储信息的最佳途径,例如,应用程序
特定的问候语或应用程序所需的初始值。

ASP 提供两个内建对象来让您存储变量:Session 对象和 Application 对象。


您也可以创建具有会话或应用程序作用域的对象实例。详细信息,请参阅 设置对
象作用域。

会话作用域

要为变量赋予会话作用域,将该变量存储到 Session 对象中即可,方法是为该对
象的已命名条目指派一个值。例如,以下命令将两个新的变量存储到 Session 对
象中。

<%

Session("FirstName") = "Jeff"

Session("LastName") = "Smith"

%>

要 Session 对象中检索信息,可以用输出指令 (<%=) 或 Response.Write 访问
已命名的条目。以下示例用输出指令显示 Session("FirstName") 的当前值:

Welcome <%= Session("FirstName") %>

可在 Session 对象中存储用户首选项,然后就可以访问这些首选项,从而决定将
哪一页返回给用户。例如,您可以允许用户在应用程序的第一页指定纯文本内容
,然后将这一选择应用到用户在该应用程序中访问的所有后续页。

<% If Session("ScreenResolution") = "Low" Then %>

This is the text version of the page.

<% Else %>

This is the multimedia version of the page.

<% End If %>

应用程序作用域

要为变量赋予应用程序作用域,将该变量存储到 Application 对象中即可,方法
是为该对象的已命名条目指派一个值。例如,以下命令将一个应用程序特定的问
候语存储到Application 对象中:

<% Application("Greeting") = "Welcome to Exploration Air" %>

要从 Application 对象中检索信息,可以使用 ASP 输出指令 (<%=) 或 Respon
se.Write 从该应用程序的任意后续页中访问已命名条目。以下示例用输出指令显
示 Application("Greeting") 的值:

<%= Application("Greeting") %>

使用常量

常量是用来代替一个数或字符串的名称。一些随 ASP 提供的基本组件,例如 Ac
tiveX Data Objects (ADO),定义了您在脚本中可以使用的常量。组件可在一个
组件类型库中声明常量,组件类型库是一个包含 ActiveX 组件所支持的对象和类
型的信息的文件。一旦在 Global.asa 文件中声明了一个类型库,您就可以在该
应用程序的任意页中使用已定义的常量。

可在 Global.asa 中用 <METADATA> 标记为应用程序声明类型库。例如,要声明
 ADO 类型库,可用以下语句:

<!--METADATA TYPE="typelib"

FILE="c:\program files\common files\system\ado\msado15.dll"

-->

这样,您就可以在与 Global.asa 文件相同的应用程序的中使用 ADO 常量。在下
面的示例中,adOpenKeyset 和 adLockOptimistic 是 ADO 常量:

'Create and Open Recordset Object

Set RsCustomerList = Server.CreateObject("ADODB.Recordset")

RsCustomerList.ActiveConnection = OBJdbConnection

RsCustomerList.CursorType = adOpenKeyset

RsCustomerList.LockType = adLockOptimistic

有关 <METADATA> 标记的参考信息,请参阅 TypeLibrary 声明。

在以前版本的 ASP 中,一些组件在文件中提供常量定义,每个使用那些组件的
ASP 文件必须包含该文件。用 #include 指令来包含常量定义的用法仍被支持,
但使用类型库通常更方便并且能使脚本更易于升级。在以后版本的 ASP 中,组件
可能将不再提供常量定义文件。

您可以定义自己的常量。在 VBScript 中,用 Const 语句,在 JScript 中,用
 var 语句。如果在多个 ASP 页中使用常量,可在独立的文件中放置常量,然后
将其包含进每一个使用该常量的 ASP 文件中去。


--



日出东方,唯我不败;
    天上地下,唯我独尊。

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.72]
--
※ 转载:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.4]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店