ASP變數和常量

ASP變數常量,變數是計算機記憶體中已命名的存儲位置,其中包含了數字或字元串等數據。變數包含的信息被稱為變數的值。變數使用用戶便於理解腳本操作的名稱為用戶提供了一種存儲、檢索和運算元據的途徑。

基本介紹

  • 中文名:ASP變數和常量
  • 變數:計算機記憶體中已命名的存儲位置
  • 變數包含信息:被稱為變數的值
  • 命名變數:有一個特定名稱的變數
聲明和命名變數,VBScript,JScript,變數作用域,變數賦予會話,會話作用域,應用程式作用域,使用常量,

聲明和命名變數

命名和聲明變數應遵循腳本語言的規則及指導。即使在使用變數前不需要去聲明變數,也應養成在編程時聲明變數的良好習慣,因為這樣有助於防止錯誤發生。聲明一個變數意味著告訴腳本引擎,有一個特定名稱的變數,這樣就可以在腳本中引用該變數。

VBScript

VBScript並不需要聲明變數,但在使用所有變數前聲明它們是一種好的腳本書寫習慣。要在 VBScript 中聲明變數,請用DimPublicPrivate語句。例如:
<% Dim UserName %>
可以在需要顯式聲明變數的 .asp 檔案中用 VBScriptOption Explicit語句。Option Explicit必須在任何一個 ASP 指令之後及任何一個 HTML 文本或腳本命令之前出現。該語句僅影響用 VBScript 書寫的 ASP 命令,而不會影響 JScript 命令。

JScript

Microsoft JScript 僅當變數為本地過程變數時才需聲明,但在使用所有變數前聲明它們是一種好的腳本書寫習慣。要聲明一個變數,請使用var語句。例如:
<% var UserName; %>

變數作用域

變數的作用域即生命期,決定哪些腳本命令可訪問變數。在過程內部聲明的變數具有局部作用域。每執行一次過程,變數就被創建然後消亡。而過程外部的任何命令都不能訪問它。在過程外部聲明的變數具有全局作用域,其值能被 ASP 頁上的任何腳本命令訪問和修改。
聲明變數時,局部變數和全局變數可以有相同的名稱。而改變其中一個的值並不會改變另一個的值。如果沒有聲明變數,則可能不小心會改變一個全局變數的值。例如,以下腳本命令返回值 1,雖然有兩個名為 Y 變數:
<% Dim YY = 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 輸出指令 (<%=) 或Response.Write從該應用程式的任意後續頁中訪問已命名條目。以下示例用輸出指令顯示 Application("Greeting") 的值:
<%= Application("Greeting") %>

使用常量

常量是用來代替一個數或字元串的名稱。一些隨 ASP 提供的基本組件,例如 ActiveX 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 ObjectSet RsCustomerList = Server.CreateObject("ADODB.Recordset")RsCustomerList.ActiveConnection = OBJdbConnectionRsCustomerList.CursorType = adOpenKeysetRsCustomerList.LockType = adLockOptimistic
在以前版本的 ASP 中,一些組件在檔案中提供常量定義,每個使用那些組件的 ASP 檔案必須包含該檔案。用#include指令來包含常量定義的用法仍被支持,但使用類型庫通常更方便並且能使腳本更易於升級。在以後版本的 ASP 中,組件可能將不再提供常量定義檔案。
您可以定義自己的常量。在 VBScript 中,用Const語句,在 JScript 中,用var語句。如果在多個 ASP 頁中使用常量,可在獨立的檔案中放置常量,然後將其包含進每一個使用該常量的 ASP 檔案中去。

相關詞條

熱門詞條

聯絡我們