创建子例程
如果你发现你需要在脚本中的多处地方执行同样的一组语句,可以使用子例程。一个子例程可以包含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被调用时,该变量的值被显示。