范文 |
在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,实参变化,形参也变化 |