在asp过程中有用到ByVal的参数传值,不是很理解什么意思,查询网络得出结果还有一个是ByRef传参.
详细解释一下ByVal和ByRef的意思:这两个都是在vbscript过程中传递参数用的比如:
sub forasp_cn(ByVal a,ByVal b...)或者是sub forasp_cn(ByRef a,ByRef b...)
ByVal和ByRef的区别在于:ByVal是用来传值的,而ByRef是用来传址的."值"和"址"两个不通的概念一定要弄清楚了.
ByVal传值时不会影响到原来的值
ByRef传址时会影响到原来的值
看下面的例子:
<%
Dim a =100'定义一个变量
Sub forasp_add(ByVal b)'设置ByVal过程,传递参数为b
b=b+1
End Sub
Sub forasp_add2(ByRef b)'设置ByRef过程,传递参数为b
b=b+1
End Sub
Call forasp_add(a)'调用第一个ByVal过程
response.write a'输出100,过程中b的值为101
response.write "<BR>"'换行
Call forasp_add2(a)'盗用第二个ByRef过程
response.write a'因为是传址,所以a的址的值是100,当调用+1时,a的值同时加1,所以a为101,b的值也为101
%>
使用ByVal,实际参数不变,形参变化
使用ByRef,实参变化,形参也变化
更多信息请查看IT技术专栏