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 中,总是表示赋值。

时间: 2024-09-22 22:57:41

ASP Eval、Execute、ExecuteGlobal区别分析的相关文章

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 执行一个或多个指定的语句.多个语句间

asp.net Eval和Bind区别分析

eval和bind的区别 最近在做asp教程.net的项目,因为涉及到数据库教程项目的绑定,而eval和bind一直老是忘记,现在baidu了下,留个记号: 绑定表达式 <%# eval("字段名") %> <%# bind("字段名")%> 最主要的区别: 1.eval取出来的数据时只读的,而bind是可更新的数据. 2.eval通常用来需要对数据进行格式化成字符串,因而和bind方法比,性能会有所下降. 3.在运行时,eval调用data

关于ASP eof与bof 区别分析_应用技巧

if rs.bof then 表示:当前指针的位置是在第一行记录之前 if rs.eof then 表示:当前指针的位置是在最后一行记录之后 if not rs.eof then 表示:当前指针的位置没有到达最后一条记录 if not rs.bof then 表示:当前指针的位置没有到达第一条记录 ------------------------- ###推荐使用下面两条 if not (rs.bof and rs.eof) then 表示:指针位于 RecordSet 的当中(并非是最后一条和

关于ASP eof与bof 区别分析

if rs.bof then 表示:当前指针的位置是在第一行记录之前 if rs.eof then 表示:当前指针的位置是在最后一行记录之后 if not rs.eof then 表示:当前指针的位置没有到达最后一条记录 if not rs.bof then 表示:当前指针的位置没有到达第一条记录 ------------------------- ###推荐使用下面两条 if not (rs.bof and rs.eof) then 表示:指针位于 RecordSet 的当中(并非是最后一条和

apache伪静态配置与iis伪静态配置的区别分析对比

apache伪静态配置与iis伪静态配置的区别分析对比 /* 在web开发中,经常会碰以要把php教程,asp教程文件伪静态成htm或其它文件,下面我们要讲一下关于apache伪静态规则与iis中伪静态规则的一些不同的部份了.下面我们先来看看apache伪静态的配置方法. 实例,我们要把 pl.php教程?id=1 page.php?id=1 伪静态成html页面 d-1.html v-1.html <virtualhost 192.168.0.110:801>     serveradmin

php echo print print_r三者区别分析

php教程 echo print print_r三者区别分析 echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)  print()    只能打印出简单类型变量的值(如int,string)  print_r() 可以打印出复杂类型变量的值(如数组,对象)  echo     输出一个或者多个字符串 echo -- 输出一个或者多个字符串 定义和用法 echo() 函数输出一个或多个字符串. 语法 echo(strings)参数 描述 str

ASP与JSP的区别和联系

js|区别|js     今天上论坛看了看,有一个网友bluesky提出问题说"ASP与JSP哪个好,他们有什么区别?"论坛帖子请单击这里看:http://www.webjx.com/bbs/topic.php?tid=4766 动态网页技术开发ASP和JSP的比较请看这里:http://www.webjx.com/htmldata/2005-05-29/1117327873.html ASP好像不存在线程安全问题,而JSP是存在线程安全问题.这不是说ASP好,恰恰相反说明ASP不如J

数据绑定控件再ASP.NET1.X和ASP.NET2.0的区别

asp.net|控件|区别|数据 数据绑定在ASP.NET2.0里进一步得到简化,绑定控件的基类来自于BaseDataBoundControl,你可以到http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.basedataboundcontrol_members(VS.80).aspx查看该类如果你查看该类的成员,请注意下面两个属性和方法 virtual object DataSource  { get; set;

JavaScript创建闭包的两种方式的优劣与区别分析

  这篇文章主要介绍了JavaScript创建闭包的两种方式的优劣与区别分析的相关资料,需要的朋友可以参考下 通常JavaScript创建闭包比较常用的有两种方式. 构造函数方式: ? 1 2 3 new function() { var 变量... } 内联执行方式: ? 1 2 3 (function() { var 变量... })(); 在JavaScript内部运行机制下他们有什么区别?用哪种方式创建比较好?它与其它方式创建的闭包相比有什么优势? 我是这样理解的: 区别: 第一个:子方