Asp classic 经典的ASP变量范围-我想我已经失去了理智

Asp classic 经典的ASP变量范围-我想我已经失去了理智,asp-classic,iis-7.5,scope,Asp Classic,Iis 7.5,Scope,自从我使用经典asp已经有一段时间了,关于可变范围,我的大脑完全衰退了 我做错了什么 <SCRIPT LANGUAGE=vbscript RUNAT=Server> dim test test = "Test it" function testAsp() testasp = "Should be a result here " & test end function </SCRIPT> <html> <body> <%

自从我使用经典asp已经有一段时间了,关于可变范围,我的大脑完全衰退了

我做错了什么

<SCRIPT LANGUAGE=vbscript RUNAT=Server>
dim test
test = "Test it"

function testAsp()
   testasp = "Should be a result here " & test
end function
</SCRIPT>

<html>
<body>
<%
   response.write(testAsp())
%>
</body>
</html> 

暗淡试验
test=“测试它”
函数testAsp()
testasp=“此处应为结果”&测试
端函数
如果我把声明移到块内,一切都好。正在运行Server2008R2,IIS 7.5。有什么变化吗?还是我?

把你的
换成
,你应该是个好人

您会被脚本引擎在经典ASP生命周期中的执行顺序所困扰。这很令人困惑,但是
块将在
块之后执行,即使它按源代码的顺序排在第一位。我无法解释为什么在
块中定义函数,但我认为它与函数有关

为了进一步澄清,这是您开箱即用的顺序(假设VBScript配置为默认语言):

  • 包含在
  • 内联VBscript,包含在
    块中
  • 包含在
  • 将您的
    更改为
    ,您应该会表现良好

    您会被脚本引擎在经典ASP生命周期中的执行顺序所困扰。这很令人困惑,但是
    块将在
    块之后执行,即使它按源代码的顺序排在第一位。我无法解释为什么在
    块中定义函数,但我认为它与函数有关

    为了进一步澄清,这是您开箱即用的顺序(假设VBScript配置为默认语言):

  • 包含在
  • 内联VBscript,包含在
    块中
  • 包含在

  • 哇-这很简单-对你来说:)我整个上午都在这上面!我的站点是使用V Interdev完成的。这种类型的代码似乎也在我的其他页面中起作用。我真的得看看区别。试着找出他们执行的顺序。Vinterdev把脚本块放得到处都是!谢谢,现在我有了一个开始。哇-那很简单-对你来说:)我整个上午都在这上面!我的站点是使用V Interdev完成的。这种类型的代码似乎也在我的其他页面中起作用。我真的得看看区别。试着找出他们执行的顺序。Vinterdev把脚本块放得到处都是!谢谢,现在我有了一个开始。如果答案解决了您的问题,请在分数和箭头下方的空V图标上打勾,将其标记为已接受。另外,一般来说,除非您明确需要一些不同的东西,否则始终只使用
    。我怀疑您是否真的需要这些东西。如果答案解决了您的问题,请在分数和箭头下方的空V图标上打勾,将其标记为已接受。另外,一般来说,除非您明确需要一些不同的东西,否则始终只使用
    ,我怀疑您是否真的需要这些东西。