创建子例程

如果你发现你需要在脚本中的多处地方执行同样的一组语句，可以使用子例程。一个子例程可以包含VBscript语句的任何集合。你可以调用同一个子例程任意多次。这里有一个例子：

<HTML>

<HEAD><TITLE>Subroutine Example</TITLE></HEAD>

<BODY>

<%

SUB ShowSentence

%>

This sentence was created by a subroutine.

<%

END SUB

ShowSentence

ShowSentence

ShowSentence

%>

</BODY>

</HTML>

如果在浏览器中显示这个文件，句子This sentence was created by a subroutine.将会被显示三次。子例程ShowSentence用于显示这个句子，通过该子例程的名字，该子例程在主脚本中被调用了三次。

子例程可以接受参数。例如，你可以创建一个子例程，根据传递给它的参数的不同而显示不同的句子。这里有一个例子：

<%

SUB ShowError(theError)

%>

<TITLE>Login Invalid</TITLE>

<BR>The login information you provided was invalid:

<BR><%=theError%>

<%

END SUB

IF user_name<>

”Andrew Jones” THEN ShowError “Bad user name.”

IF user_password<>

”secret password” THEN ShowError “Bad password”

%>

在这个例子中，根据传递给它的字符串的不同，子例程显示不同的错误信息。例如，如果变量user_name的值不等于

”Andrew Jones”,则用字符串”Bad user name”调用该子例程。如果变量user_password的值不等于”secret password”，则字符串”Bad password”被传递给该子例程。

你可以一次给一个子例程传递多个参数。要做到这一点，只要简单地用逗号把参数隔开即可，如下例所示：

<TITLE>Subroutine Example</TITLE>

<%

Sub MySub(myvar1,myvar2)

mystring=myvar1&myvar2

%>

<%=mystring%>

<%

END SUB

MySub

“The house “,”is on a hill.”

%>

如果在一个子例程中声明或第一次使用一个变量，则该变量只在这个子例程内存在。这意味着如果你在子例程内给该变量分配了任何值，你将不能在该子例程外读取到这些值。考虑如下的例子：

<TITLE>Subroutine Example</TITLE>

<%

SUB AssignVar

myvar=

”Hello There!”

END SUB

AssignVar

%>

<%=myvar%>

在这个例子中，在子例程内给变量myvar分配了值

”Hello There!”。在该子例程的范围之外，试图显示这个变量的值，但什么也不能显示。

另一方面，如果在一个子例程的外部声明或第一次使用了一个变量（在脚本的层次），该变量可以在子例程之内被访问。考虑如下的例子：

<TITLE>Subroutine Example</TITLE>

<%

SUB ShowVar

%>

<%=myvar%>

<%

END SUB

myvar=

”Hello There!”

ShowVar

%>

在这个例子中，在主脚本中给变量myvar分配了值

”Hello There!”。当子例程ShowVar被调用时，该变量的值被显示。