在asp過程中有用到ByVal的參數(shù)傳值,不是很理解什么意思,查詢網(wǎng)絡(luò)得出結(jié)果還有一個(gè)是ByRef傳參.
詳細(xì)解釋一下ByVal和ByRef的意思:這兩個(gè)都是在vbscript過程中傳遞參數(shù)用的比如:
sub forasp_cn(ByVal a,ByVal b...)或者是sub forasp_cn(ByRef a,ByRef b...)
ByVal和ByRef的區(qū)別在于:ByVal是用來傳值的,而ByRef是用來傳址的."值"和"址"兩個(gè)不通的概念一定要弄清楚了.
ByVal傳值時(shí)不會(huì)影響到原來的值
ByRef傳址時(shí)會(huì)影響到原來的值
看下面的例子:
<%
Dim a =100'定義一個(gè)變量
Sub forasp_add(ByVal b)'設(shè)置ByVal過程,傳遞參數(shù)為b
b=b+1
End Sub
Sub forasp_add2(ByRef b)'設(shè)置ByRef過程,傳遞參數(shù)為b
b=b+1
End Sub
Call forasp_add(a)'調(diào)用第一個(gè)ByVal過程
response.write a'輸出100,過程中b的值為101
response.write "<BR>"'換行
Call forasp_add2(a)'盜用第二個(gè)ByRef過程
response.write a'因?yàn)槭莻髦?所以a的址的值是100,當(dāng)調(diào)用+1時(shí),a的值同時(shí)加1,所以a為101,b的值也為101
%>
使用ByVal,實(shí)際參數(shù)不變,形參變化
使用ByRef,實(shí)參變化,形參也變化
更多信息請查看IT技術(shù)專欄