目录

  1. ASP 子程序简介
  2. Sub 过程(无返回值)
  3. Function 过程(有返回值)
  4. ASP 过程的参数传递
  5. 调用 ASP 过程的示例
  6. 子程序的作用域
  7. ASP 内置函数
  8. 总结
  9. 参考资料

1. ASP 子程序简介

ASP(Active Server Pages)支持两种类型的子程序(过程):

  • Sub 过程:不返回值
  • Function 过程:有返回值

使用子程序可以使代码结构更加清晰、易于维护,适用于代码复用复杂逻辑处理


2. Sub 过程(无返回值)

Sub 过程(Subroutine)用于执行一系列操作,不返回任何值。

  • 语法:
Sub 过程名(参数列表)
    代码块
End Sub

  • 示例:
<%
Sub SayHello()
    Response.Write "Hello, ASP!<br>"
End Sub

SayHello()
%>

输出:

Hello, ASP!


3. Function 过程(有返回值)

Function 过程用于执行某些操作,并返回一个值。

  • 语法:
Function 过程名(参数列表)
    代码块
    过程名 = 返回值
End Function

  • 示例:
<%
Function Square(x)
    Square = x * x
End Function

Response.Write "5 的平方是:" & Square(5)
%>

输出:

5 的平方是:25


4. ASP 过程的参数传递

4.1 按值传递(ByVal)

默认参数传递方式。函数只接收参数的值,而不会修改原变量

<%
Sub TestByVal(ByVal x)
    x = x + 10
    Response.Write "过程内的 x:" & x & "<br>"
End Sub

Dim num
num = 5
TestByVal num
Response.Write "过程外的 num:" & num
%>

输出:

过程内的 x:15
过程外的 num:5

解释num 作为参数传入 TestByVal,但其值不会被修改。

4.2 按引用传递(ByRef)

ByRef 允许函数修改原变量的值

<%
Sub TestByRef(ByRef x)
    x = x + 10
    Response.Write "过程内的 x:" & x & "<br>"
End Sub

Dim num
num = 5
TestByRef num
Response.Write "过程外的 num:" & num
%>

输出:

过程内的 x:15
过程外的 num:15

解释num 变量的值在 TestByRef 过程中被修改。


5. 调用 ASP 过程的示例

5.1 计算两个数的和(Function 过程)

<%
Function Add(a, b)
    Add = a + b
End Function

Response.Write "10 + 20 = " & Add(10, 20)
%>

输出:

10 + 20 = 30

5.2 欢迎用户(Sub 过程)

<%
Sub WelcomeUser(username)
    Response.Write "欢迎, " & username & "!<br>"
End Sub

WelcomeUser "Alice"
WelcomeUser "Bob"
%>

输出:

欢迎, Alice!
欢迎, Bob!


6. 子程序的作用域

6.1 局部子程序(仅在当前页面有效)

在 ASP 页面定义的 Sub 和 Function 只能在当前页面调用

<%
Sub LocalProcedure()
    Response.Write "这是一个局部子程序<br>"
End Sub

LocalProcedure()
%>

6.2 全局子程序(包含文件调用)

如果你希望在多个 ASP 页面复用一个子程序,可以将其放在 .asp 或 .inc 文件中,然后在其他页面 include进来。

1. 创建 functions.asp 文件

<%
Function Multiply(a, b)
    Multiply = a * b
End Function
%>

2. 在主页面 index.asp 引入

<!--#include file="functions.asp"-->
<%
Response.Write "5 * 6 = " & Multiply(5, 6)
%>

输出:

5 * 6 = 30


7. ASP 内置函数

ASP 提供了一些常用的内置函数,无需手动定义:

内置函数说明示例
Len()返回字符串长度Len("ASP") = 3
LCase()转换为小写LCase("ASP") = asp
UCase()转换为大写UCase("asp") = ASP
Trim()去除前后空格Trim(" ASP ") = "ASP"
Replace()替换字符串Replace("Hello ASP", "ASP", "World")
Date()获取当前日期Date() = 2025-04-01
Time()获取当前时间Time() = 12:30:45

示例:

<%
Dim text
text = " Hello ASP "
Response.Write "原始文本:" & text & "<br>"
Response.Write "去除空格:" & Trim(text)
%>

输出:

原始文本: Hello ASP 
去除空格:Hello ASP


8. 总结

  • ASP 支持 Sub 和 Function 过程,用于组织代码,提高可读性和复用性。
  • Sub 过程不返回值,Function 过程返回值
  • ASP 默认按值传递(ByVal),但可以使用 ByRef 允许子程序修改参数值。
  • 可以在 ASP 页面内部声明子程序,也可以通过 #include file 方式引入全局子程序
  • ASP 提供了多个内置函数,可直接使用,无需自定义

9. 参考资料

  1. W3Schools ASP 教程
  2. Microsoft ASP 官方文档
  3. ASP 语法手册