程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> ASP函數:Eval、Execute、ExecuteGlobal三者區別

ASP函數:Eval、Execute、ExecuteGlobal三者區別

編輯:ASP技巧

ASP函數的三個函數:Eval、Execute、ExecuteGlobal 都是執行字符串表達式,不過它們之間又有所不同。

Eval 計算一個表達式的值並返回結果。 
語法:[result = ]eval_r(expression_r) 
expression_r 為任意有效 VBScript 表達式的字符串 
示例: 
代碼如下:
response.Write(eval_r("3+2")) '輸出 5 
"3+2" 使用引號括起來,表示是一個字符串,但是在 Eval “眼裡”,把它當作一個表達式 3+2 來執行。

Execute 執行一個或多個指定的語句。多個語句間用冒號(:)隔開。 
語法:Execute statements 
示例: 
Execute "response.Write(""abc"")" '輸出 abc 
"response.Write(""abc"")" 使用引號括起來,表示是一個字符串 
但是在 Execute “眼裡”,把它當作一個語句 response.Write("abc") 來執行。

ExecuteGlobal 在全局名字空間中執行一個或多個指定的語句。 
語法:ExecuteGlobal statement 
示例: 
代碼如下:
dim c 
c = "全局變量" 
sub S1() 
dim c 
c = "局部變量" 
Execute "response.Write(c)" '輸出 局部變量 
ExecuteGlobal "response.Write(c)" '輸出 全局變量 
end sub 
Execute "response.Write(c)" '輸出 全局變量 
call S1() 
變量 c 既在全局范圍內定義,也在函數范圍內定義,Execute 按自己所處的位置來決定使用局部變量還是全局變量,而 ExecuteGlobal 則始終只認全局范圍的 c。 
總結: 
Eval 只執行一個語句 語句可以有也可以沒有返回值 
Execute 執行一個或多個語句 忽略語句的返回值 
ExecuteGlobal 執行一個或多個語句 忽略語句的返回值 全局變量和局部變量同名時總是使用全局變量

注意: 
在 VBScript 中“賦值”與“比較”都是使用“=”,比如“a=b”既可以說是將 b 值賦予 a,也可以說是判斷 a 與 b 是否相等,那麼 eval_r("a=b") 是表示賦值還是比較運算呢? 
這裡有個約定,在 Eval 中,“a=b”總是表示比較運算,在 Execute 和 ExecuteGlobal 中,總是表示賦值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved