首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

问个很弱的有关问题,ASP变量作用域

2012-08-28 
问个很弱的问题,ASP变量作用域VB codedim xxrequest(do)if x1 thendim yy1000000x1response.wri

问个很弱的问题,ASP变量作用域

VB code
dim xx=request("do")if x="1" then    dim y    y="1000000x=1"    response.write("y")elseif x="2" then    dim y    y="22222222222"    response.Write("y")elseif x="3" then    dim y    y="3333333333333"    response.write("y")end if


类似上面这段代码,一打开就提示:变量重复定义

因为每个elseif里面会有很多变量,如果每个变量都独立名字,会很痛若。。

[解决办法]
dim y
只要第一个就可以了,ASP变量是全局的。除非你定义在函数或者过程中
[解决办法]
ASP的 vbs中没有块级别的变量, 页面级别的全局变量可一次都定义完, 要么在函数中用局部变量。

VBScript code
<%dim x, yx = Trim(request("do"))Select Case x    Case "1" y = "1000000"    Case "2" y = "2000000"    Case "3" y = "3000000"End SelectResponse.Write y%>
[解决办法]
你那一整段就是一个函数 叫主函数,里面所有的变量当然要是独一无二的
要是想实现你想要的重复定义那就把每段都写成独立函数在主函数中调用

#1楼 的可以那么理解 但表述方法有待商榷 - -!
[解决办法]
假如在子程序之外声明变量,那么这个变量可被 ASP 文件中的任何脚本改变。假如在子程序中声明变量,那么当子程序每次执行时,它才会被创建和撤销。

这是W3C的解释 #1楼是对的。。(看来我确实太久没ASP了 - -!)
http://www.w3school.com.cn/asp/asp_variables.asp
[解决办法]
本页面。好像不能影响函数。
[解决办法]
给你个例子:
dim y
y="123"
function funy()
dim y
y="456"
funy=y
end function
function suby()
suby=y
end function
response.Write "<br>y=" & y
response.Write "<br>y=" & funy()
response.Write "<br>y=" & suby()
[解决办法]
您这样声明y是全局变量,在页面执行前程序第一步会打到所有的全局变量,无论的您变量是在何处声明的。

热点排行