ASP Eval、Execute、ExecuteGlobal区别分析(2)
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 中,总是表示赋值。