ByVal

字號:


    在asp過程中有用到ByVal的參數(shù)傳值,不是很理解什么意思,查詢網(wǎng)絡(luò)得出結(jié)果還有一個是ByRef傳參.
    詳細解釋一下ByVal和ByRef的意思:這兩個都是在vbscript過程中傳遞參數(shù)用的比如:
    sub forasp_cn(ByVal a,ByVal b...)或者是sub forasp_cn(ByRef a,ByRef b...)
    ByVal和ByRef的區(qū)別在于:ByVal是用來傳值的,而ByRef是用來傳址的."值"和"址"兩個不通的概念一定要弄清楚了.
    ByVal傳值時不會影響到原來的值
    ByRef傳址時會影響到原來的值
    看下面的例子:
    <%
    Dim a =100'定義一個變量
    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)用第一個ByVal過程
    response.write a'輸出100,過程中b的值為101
    response.write "<BR>"'換行
    Call forasp_add2(a)'盜用第二個ByRef過程
    response.write a'因為是傳址,所以a的址的值是100,當調(diào)用+1時,a的值同時加1,所以a為101,b的值也為101
    %>
    使用ByVal,實際參數(shù)不變,形參變化
    使用ByRef,實參變化,形參也變化