我只是想知道是否有可能取消调整变量。
想象一下,这是我在ASP页面中使用的#include文件
Dim MyVar
MyVar = "Hello World"
Response.write(MyVar)
'From now on I can not use Dim MyVar anymore as it throws an error
'I have tried
MyVar = Nothing
Set MyVar = Nothing
'But again, when you do
Dim MyVar
'It throws an error.
原因是我不能每页多次使用相同的#INCLUDE文件。是的,我喜欢使用Option Explicit,因为它可以帮助我保持代码清洁。
*)编辑:我发现它并不像我想的那么清晰。
想象一下,这是一个“include.asp”
<%
Dim A
A=1
Response.Cookie("beer")=A
%>
现在是asp页面:
<!--#include file="include.asp"-->
<%
'Now: I do not see whats in include above and I want to use variable A
Dim A
'And I get an error
'I also cannot use the same include again:
%>
<!--#include file="include.asp"-->
你明白我的意思吗?如果我能够在Include结尾处删除A变量,问题就会解决。
答案 0 :(得分:6)
没有办法“UnDim”变量。幸运的是,你也不需要那个。
每当您尝试在同一范围内声明两次变量时,您就已经犯了错误。认为运行时不允许你这样做很有帮助。
解决方案:
答案 1 :(得分:1)
我同意Tomalak - 我真的不确定你为什么需要(或想要)两次包含同一个文件(?)
它似乎是一个糟糕的设计哲学,最好将include文件中的例程封装为可以调用的函数或子例程 - 不需要包含两次。
此外,虽然你不能解开,但你可以重新开始,但我不想鼓励不良做法,考虑到你似乎想要做的事情。
你可以使用这样的东西而不是所有:
Include.asp:
<%
Function SetCookie(scVar, scVal)
Response.cookie (scVar) = scVal
End Function
%>
asp页面:
<!--#include file="include.asp"-->
<%
Dim A
A=1
SetCookie "Beer", A
A=1 ' This is kind of redundant in this code.
SetCookie "Beer", A
%>
但是如果你确实想要使用全局变量,并坚持使用两次,那么你可以通过为globals添加另一个include来实现这一点。
Globals.asp:
<%
Dim globalVarA
...other global stuff here....
%>
Include.asp:
<%
globalVarA=1
Response.Cookie("beer")=globalVarA
%>
现在是asp页面:
<!--#include file="globals.asp"-->
<!--#include file="include.asp"-->
<%
Dim A
A=....something......
%>
<!--#include file="include.asp"-->