Chương trình con
ASP Classic là ngôn ngữ có cấu trúc cao. Do đó, một chương trình lớn có thể chia thành nhiều chương trình con với hai mục đích :
- Dễ kiểm tra, dề điều khiển từng phần của chương trình.
- Tránh lặp đi lặp lại những đoạn chương trình dùng nhiều lần. Điều này vừa gây mất thời gian cho người lập trình vừa làm cho chương trình thêm lôi thôi, mất thẩm mĩ.
Trong ASP Classic có hai loại chương trình con :
Sự khác nhau cơ bản và duy nhất của hai loại chương trình con này là :
- Function trả lại cho một giá trị kết quả vô hướng thông qua tên của Function và do đó nó được sử dụng trong một biểu thức.
- Procedure không trả lại kết quả thông qua tên của nó nên các Procedure không thể viết trong các biểu thức.
Biến tham trị và biến tham chiếu
Xét đoạn thủ tục sau
Function Tong(ByVal a, ByRef b)
Tong = a+b
b = b+1
End Function
Sau khi gọi hàm:
Dim x,y, tong
x = 3
y = 3
tong = Tong(x,y)
- Đầu vào của hàm và thủ tục: ByVal với biến tham trị , ByRef với biến tham chiếu
- Tham trị: ở đây là a, khi bạn gọi hàm, chương trình sẽ tạo một biến a mới, với giá trị bằng giá trị tham số nhập vào (giá trị của x). Sau khi thực hiện xong hàm thì a bị xóa đi, giá trị của x không hề bị đụng đến nên ko thay đổi( vì mọi thao tác đều trên a). Tức là khi vào chương trình sẽ tự tạo ra các biến đầu vào dùng tạm ở trong hàm và copy dữ liệu của các biến được truyền vào. Kết thúc hàm x= 3
- Tham chiếu: ở đây là b, b không được tạo mới mà được tham chiếu đến ô nhớ đang chứa tham số thứ hai là y. Tức là biến b đang để khai báo dạng tham chiếu nên khi vào hàm sẽ tham chiếu đến ô nhớ chứa biến y => kết thúc hàm y = 4
Thủ tục trong ASP Clasic
1) Cú pháp khai báo thủ tục trong ASP Classic
Sub Ten_thu_tuc ( Khai báo các tham số hình thức )
(* Khai báo : Label, Const, Type, Var, hoặc các Procedure và Function *)
(* Thân chương trình con *)
End Sub
2) Cách gọi thủ tục trong ASP Classic
Call Ten_thu_tuc(arguments)
3) Ví dụ
<!DOCTYPE html>
<html>
<head>
Đoạn code của tôi
</head>
<body>
<%
Sub SubProc(ByVal intA, ByVal intB)
Response.Write("Tong cua hai so " & a & " va "& b & " la: "& (intA+intB))
End Sub
%>
<p>
Result: <% Call SubProc(3,4) %>
</p>
</body>
</html>
Kết quả:
Result: Tong cua hai so 3 va 4 la: 7
Hàm trong ASP Clasic
1) Cú pháp khai báo hàm trong ASP Classic
Function Ten_ham ( khai báo các tham số hình thức )
(* Khai báo : Label, Const, Type, Var, hoặc các Procedure và Function *) ;
(* Thân chương trình con *)
Ten_ham = some value
End Function
2) Cách gọi hàm trong ASP Classic
Dim a
a = Ten_ham(khai báo các tham số hình thức)
Kiểu dữ liệu của a và của hàm trả về phải giống nhau
3) Ví dụ
<!DOCTYPE html>
<html>
<head>
Đoạn code của tôi
</head>
<body>
<%
Function FuncProc(ByVal intA, ByVal intB)
FuncProc = intA + intB
End Function
%>
<p>
Result: <% FuncProc(3,4) %>
</p>
</body>
</html>
Kết quả:
Result: 7