现在的位置: 首页 > 编程语言 > 正文

Eval、Execute、ExecuteGlobal三者区别有什么

2020年06月02日 编程语言 ⁄ 共 1235字 ⁄ 字号 评论关闭

  ASP函数的三个函数:Eval、Execute、ExecuteGlobal都是执行字符串表达式,不过它们之间又有所不同。Eval计算一个表达式的值并返回结果。下面学步园小编来讲解下Eval、Execute、ExecuteGlobal三者区别有什么?

  Eval、Execute、ExecuteGlobal三者区别有什么

  语法:[result=]eval_r(expression_r)

  expression_r为任意有效VBScript表达式的字符串

  示例:

  代码如下:

  response.Write(eval_r("3+2"))'输出5

  "3+2"使用引号括起来,表示是一个字符串,但是在Eval“眼里”,把它当作一个表达式3+2来执行。

  Execute执行一个或多个指定的语句。多个语句间用冒号(:)隔开。

  语法:Executestatements

  示例:

  Execute"response.Write(""abc"")"'输出abc

  "response.Write(""abc"")"使用引号括起来,表示是一个字符串

  但是在Execute“眼里”,把它当作一个语句response.Write("abc")来执行。

  ExecuteGlobal在全局名字空间中执行一个或多个指定的语句。

  语法:ExecuteGlobalstatement

  Eval、Execute、ExecuteGlobal三者区别有什么

  示例:

  代码如下:

  dimc

  c="全局变量"

  subS1()

  dimc

  c="局部变量"

  Execute"response.Write(c)"'输出局部变量

  ExecuteGlobal"response.Write(c)"'输出全局变量

  endsub

  Execute"response.Write(c)"'输出全局变量

  callS1()

  变量c既在全局范围内定义,也在函数范围内定义,Execute按自己所处的位置来决定使用局部变量还是全局变量,而ExecuteGlobal则始终只认全局范围的c。

  总结:

  Eval只执行一个语句语句可以有也可以没有返回值

  Execute执行一个或多个语句忽略语句的返回值

  ExecuteGlobal执行一个或多个语句忽略语句的返回值全局变量和局部变量同名时总是使用全局变量

  注意:

  在VBScript中“赋值”与“比较”都是使用“=”,比如“a=b”既可以说是将b值赋予a,也可以说是判断a与b是否相等,那么eval_r("a=b")是表示赋值还是比较运算呢?

  这里有个约定,在Eval中,“a=b”总是表示比较运算,在Execute和ExecuteGlobal中,总是表示赋值。

  以上就是关于“Eval、Execute、ExecuteGlobal三者区别有什么”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.