asp中的全局函数可以被改变吗!

来源:百度知道 编辑:UC知道 时间:2024/05/28 16:50:32
dim n
function abc(n)
n=n+1
end function
n=5
response.write (n & ":" & abc(n))
如题:n经过函数abc后变成6是不是就保留在n的内存中了?

你这个函数当中是不能改变n的值的,n是在函数外定义的,而ASP默认的参数传递形式是传值形式(即实际变量的一份拷贝,在你这个例子中为全局n的一份拷贝,所以在函数中对n的修改是不会反映到全局n变量中的,如果要在函数中改变全局n变量,应将函数的传参形式改为引用传递:
function abc(byref n)
n=n+1
end function

另外你最后这句response.write (n & ":" & abc(n))也有问题,abc函数没有返回任何值!应改为:
function abc(byref n)
n=n+1
abc=n '给函数名赋值即为返回值了
end function