安大互联
财经热点 > Asp编程 > ASP中变量的使用范围问题
ASP中变量的使用范围问题
浏览次数:【822】  发布日期:2009-8-13 12:09:22    文章分类:Asp编程   
专题:】 【
 

<%
dim a
a = 10

function aa()
  dim b
  b = 5
  response.write(a)'这里输出的是10,函数外部定义的变量可以称之为全局变量,在任何位置都有效,包含FUNCTION内部、SUB内部,CLASS内部
  a = 5 '由于a是在aa外部定义的,因此这里对A的改动会影响到全局a的值
end function

call aa()

response.write(a) '这里输出的是5,因为a在AA函数内被改动了。
response.write(b) '这里输出的是空,因为b是在函数aa内部定义的,所以b只在aa内部有效
%>
再看一例
<%
dim a
a = 10
function aa()
  dim a '注意这里比上面的函数中加了一个dim a,在aa内部声明的变量只在aa内部有效,此函数中的a与函数外面的a没有任何关系,因此他不会影响到函数外a的值
  a = 5
end function

call aa

response.write(a)'这里输出为10,因为在函数内部声明的变量只在内部有效
%>

第叁例
<%
dim a
a = 10

'注意这里的参数使用了byval,不加byval默认情境下ASP将使用byref的形式传值,byval简单可以解读为复制参数的一个副本,因此a在aa中的变化实际上只是a的一个副本的变化,不会影响到外部a的值,因此在后面的输出a仍然为10
function aa(byval a)
  a = 5
end function

call aa(a)

response.Write(a)
%>


第四例
<%
dim a
a = 10

'这里传值的形式改成了byref,实际上加不加byref效果都不一样,VBSCRIPT中的函数及过程默认的传值方式都是byref
'byref意为传送该参数的实际内存地址,因此在函数内更改a相当于更改了函数外部a的值,所以下面将会输出5
function aa(byref a)
  a = 5
end function

call aa(a)

response.Write(a)'这里输出的是5,因为在函数aa中a的值被改变了
%>

手机扫码浏览该文章
 ● 相关资讯专题
  • 网络建设业务咨询

   TEl:13626712526