ASP/VBScript ByRef & ByVal |
ByRef และ ByVal เป็น Argument Passing ที่รองรับ Argument ใน Sub และ Function ใช้จัดการกับตัวแปรภายนอกที่เข้าสู่การทำงานของ Sub และ Function ควบคุมการเปลี่ยนแปลงค่าของตัวแปร และป้องกันความผิดพลาดกับตัวแปรที่ถูกส่งกลับมา
ความมายของ ByRef และ ByVal
ByRef = ยอมให้มีการเปลี่ยนแปลงค่าจาก Sub หรือ Function มายังตัวแปร Argument ที่ทำการ Call
ByVal = ไม่ยอมให้มีการเปลี่ยนแปลงค่าจาก Sub หรือ Function มายังตัวแปร Argument ที่ทำการ Call
Syntax
<%
Sub MySub(ByVal Arg1,ByRef Arg2,....)
// Statement
End Sub
Function MyFunction(ByVal Arg1,ByRef Arg2,....)
// Statement
End MyFunction
'*** กรณีที่ไม่ได้กำหนด ByVal หรือ ByRef ค่า Default จะเป็น ByRef ***'
%>
ถ้ายังไม่เข้าลองมาดูตัวอย่างดีกว่าครับ
Sample
<html>
<head>
<title>ThaiCreate.Com ASP ByRef & ByVal</title>
</head>
<body>
<%
'********** Sub **********'
Sub MySub(ByVal strA,ByRef strB,strC)
Dim strSum
Sum = 100
sttA = strA + Sum
strB = strB + Sum
strC = strC + Sum
End Sub
Dim MyVar1,MyVar2,MyVar3
MyVar1 = 10
MyVar2 = 20
MyVar3 = 30
Call MySub(MyVar1,MyVar2,MyVar3)
Response.write("<br>MyVar1 = " & MyVar1)
Response.write("<br>MyVar2 = " & MyVar2)
Response.write("<br>MyVar3 = " & MyVar3)
Response.write ("<hr>")
'********** Function **********'
Function MyFunction(ByVal strA,ByRef strB,strC)
Dim strSum
Sum = 100
sttA = strA + Sum
strB = strB + Sum
strC = strC + Sum
End Function
MyVar1 = 10
MyVar2 = 20
MyVar3 = 30
Call MyFunction(MyVar1,MyVar2,MyVar3)
Response.write("<br>MyVar1 = " & MyVar1)
Response.write("<br>MyVar2 = " & MyVar2)
Response.write("<br>MyVar3 = " & MyVar3)
%>
</body>
</html>
คำอธิบาย
จากโปรแกรมจะเห็นว่า Sub และ Function มีการประกาศ Argument 3 ตัว ตัวแรกเป็น ByVal ตัวที่ 2 เป็น ByRef และตัวที่ 3 ไม่ได้ระบุชนิด และเมื่อมีการเรียกใช้งาน Sub และ Function ตัวแปร Argument เหล่านั้นจะถูก +100 ซึ่งเมื่อมีการทำงานจนเสร็จสิ้น Argument ชนิด ByVal จะไม่มีการส่งค่าใหม่กลับ Argument ที่ทำการ Call
Screenshot
Reference : http://msdn.microsoft.com/en-us/library/ddck1z30(vs.71).aspx
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2008-08-10 15:38:37 /
2008-10-05 21:17:12 |
|
Download : |
|
|
Sponsored Links / Related |
|
|
|
|
|
|
|