ASP中的EVAL函数使用教程

 近两日,学习了ASP的EVAL函数。感觉上很实用,如果使用得当,能减轻很多代码的编写量,也使得代码更加简洁明了。

EVAL函数的原型:

EVAL(expression)

其中expression是字符串参数,可以是表达式,可以是变量,甚至可以是语句。但都是以字符串的形式出现。

例如

b=EVAL("A=5")

这句代码意思是判断变量A的值,是否等于5,等于返回TRUE,不等于返回FALSE。等同于b=(A=5)。不过,该函数的灵活就在于他的参数是以字符串的形式存在的。这样我可以构造字符串,相当于执行该字符串的语句。

再例如:

b=EVAL("A")

这句代码是返回变量A的值。由于ASP是隐式定义的,当没有定义A时,返回空字符串。

在例如:

b=EVAL("CustFunction(2,3)")

这句代码执行函数CustFunction(2,3),将返回值给b。看到这,想到什么?嗯,多态。

由于EVAL函数的参量是字符串,我合理的构造字符串能实现很多看起来不可能的事情。

下面一段代码,是利用EVAL函数来实现构造链接URL的代码。具有一定的通用性。
Dim zID, zOrder, zOrderBy, zCurPage
Dim zPageCount, zURL

Dim zMM(), zMMPara()

redim zMM(0)
redim zMMPara(0)

Public Sub AddPara(Para, Default, ParaType)
ReDim Preserve zMM(UBound(zMM) + 1)
ReDim Preserve zMMPara(UBound(zMM))
If ParaType = 1 Then
zMM(UBound(zMM)) = Para & "=" & Default
Else
zMM(UBound(zMM)) = Para & "=""" & Default & """"
End If
zMMPara(UBound(zMM)) = Para
End Sub

Public Function GetURL(URL)
Dim i, tS
tS = ""
For i = 1 To UBound(zMM)
If Eval(zMM(i)) = False Then
tS = tS & "&" & Mid(zMMPara(i), 2) & "=" & Eval(zMMPara(i))
End If
Next

If Len(tS) > 0 Then
GetURL = URL & "?" & Mid(tS, 2)
Else
GetURL = URL
End If
End Function

Public Function GetNav(Index)
Dim tS
If zPageCount = 1 Then
GetNav = ""
End If
Select Case Index
Case 1
If zCurPage = 1 Then
GetNav = ""
Else
tS = zCurPage
zCurPage = 1
GetNav = "<span><a href=" & GetURL(zURL) & ">首页</a></span>"
zCurPage = tS
End If
Case 2

If zCurPage = 1 Then
GetNav = ""
Else
tS = zCurPage
zCurPage = zCurPage - 1
GetNav = "<span><a href=" & GetURL(zURL) & ">上一页</a></span>"
zCurPage = tS
End If

Case 3
If zCurPage = zPageCount Then
GetNav = ""
Else
tS = zCurPage
zCurPage = zCurPage + 1
GetNav = "<span><a href=" & GetURL(zURL) & ">下一页</a></span>"
zCurPage = tS
End If

Case 4
If zCurPage = zPageCount Then
GetNav = ""
Else
tS = zCurPage
zCurPage = zPageCount
GetNav = "<span><a href=" & GetURL(zURL) & ">末页</a></span>"
zCurPage = tS
End If

End Select
End Function

这段代码,充分利用EVAL函数对于页面的四个参数zID, zOrder, zOrderBy, zCurPage进行URL的构造。且具有一定的通用性。只要适当的修改就可以了。

时间: 2024-10-04 22:25:43

ASP中的EVAL函数使用教程的相关文章

ASP学习:VBScript中的eval()函数

vbscript|函数     Javascript中的eval函数让我们可以很方便地操作一系列变量(a1,a2,a3,--).自从VBScript 5.0之后,我们也可以ASP中使用这个功能了!    很感谢编程爱好者论坛上的朋友提出的难题,让我多学到了这个很有用的函数.    和Javascript一样,eval()也是计算其中字符串所代表变量的值并返回,如eval("a"&"1")返回a1的值.不过这个eval()的功能和Javascript比起来还是

javascript中的eval函数 教程

(1)介绍javascript教程中的eval函数的用法 (2)如何在函数内执行全局代码 ?先来说eval的用法,内容比较简单,熟悉的可以跳过. eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: var code1='"a" + 2';    //表达式 var code2=

MySQL中的SUM函数使用教程

  这篇文章主要介绍了MySQL中的SUM函数使用教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下 MySQL的SUM函数是用来找出记录中各种的字段的总和. 要了解SUM函数考虑EMPLOYEE_TBL表具有以下记录: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | wor

MySQL中的CONCAT函数使用教程

  这篇文章主要介绍了MySQL中的CONCAT函数使用教程,是Python入门学习中的基础知识,需要的朋友可以参考下 使用MySQL CONCAT()函数将两个字符串连接起来,形成一个单一的字符串.试试下面的例子: ? 1 2 3 4 5 6 7 mysql> SELECT CONCAT('FIRST ', 'SECOND'); +----------------------------+ | CONCAT('FIRST ', 'SECOND') | +--------------------

推荐ASP中VBScript常用函数_FSO专题

/*-------------------ASP文档参考集-----------------------*/ *-->作者:草履虫 *-->时间:2007-4.28---2007-4.30(原来是自己编写的手册,现在发在这里) *-->联系:caolvchong@gmail.com *-->文档功能: 1.复习了ASP,加深了对ASP结构的理解和ASP的体会 2.可以用来做ASP参考,自己写的,参考起来更方便 这是第五部分:ASP中VBScript常用函数 /*----------

深入认识javascript中的eval函数_javascript技巧

1)介绍javascript中的eval函数的用法 (2)如何在函数内执行全局代码 ►先来说eval的用法,内容比较简单,熟悉的可以跳过. eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下: var code1='"a" + 2'; //表达式 var c

推荐ASP中VBScript常用函数

/*-------------------ASP文档参考集-----------------------*/ *-->作者:草履虫 *-->时间:2007-4.28---2007-4.30(原来是自己编写的手册,现在发在这里) *-->联系:caolvchong@gmail.com *-->文档功能: 1.复习了ASP,加深了对ASP结构的理解和ASP的体会 2.可以用来做ASP参考,自己写的,参考起来更方便 这是第五部分:ASP中VBScript常用函数 /*----------

PHP和ASP中关于转向函数的区别

asp中实现重定向是用response.redirect函数:   用法一例:   response.redirect "../test.asp" php中也有类似函数:header   用法一例:   header("location:../test.php"); 但是两者是有区别的. asp的redirect函数可以在向客户发送头文件后起作用.  如 <html><head></head><body> <%r

JavaScript中的eval()函数详解_基础知识

eval("1+2"),-> 3       动态判断源代码中的字符串是一种很强大的语言特性,几乎没有必要在实际中应用.如果你使用了eval(),你应当仔细考虑是否真的需要使用它. 一.eval()是一个函数还是一个运算符 eval()是一个函数,但由于它已经被当成运算符来对待了..JavaScript语言的早期版本定义了eval函数,现代JavaScript解释器进行了大量的代码分析和优化.而eval的问题在于,用于动态执行的代码通常来讲不能分析,换句话说,如果一个函数调用了e