Paso de parametros a funciones en ASP

Podemos definir una función como un fragmento de código que recoge unos parámetros, realiza operaciones con ellos y finalmente devuelve un resultado. Para declarar una función en ASP, es necesario marcarlo con la palabra reservada Function seguida del nombre de la función e indicando después los parámetros necesarios entre paréntesis. Al terminar nuestro código debemos indicar el fin de la función mediante End Function. Mencionar que el resultado se devuelve en una variable con el nombre de la función. Veamos un ejemplo de una función sencilla:

Function total (valor1, valor2)
	total = valor1 + valor2
End Function

Si queremos invocar a la función simplemente basta con escribir el nombre de la función seguido de los parámetros entre paréntesis. Para usar la función anterior seria necesario escribir en nuestro codigo ASP:

total (5, 3)
Response.Write total(5, 3)   'Esta linea saca por pantalla el 
                             'resultado de la operacion
Response.Write (total(5, 3)) 'Esta linea hará lo mismo pero a 
                             'mi manera de ver es más elegante ;)

Los parámetros

Para profundizar más en las funciones y su uso, puedes buscar algún tutorial web que hablan más detenidamente sobre ellas. Ahora vamos a algo más interesante, el paso de parámetros. El paso de parametros predeterminado en ASP es por referencia. ¿Qué significa esto?. Si en algún momento de la ejecución la función cambia el valor de algun parametro, la variable que se pasó como parámetro también cambiará su valor. Puede sonar complicado, de modo que veamoslo mejor con un ejemplo (las funciones pueden ser un poco banales):

<%@ LANGUAGE= "VBSCRIPT" %>
<HEAD>
<TITLE>Un Ejemplo</TITLE>
<%
Function total (valor1) 'Declaramos la función, al no indicar 
                        'nada el parametro se pasa como "ByRef"
	valor1 = 2 	'En esta sentencia machacamos "valor1" y ahora valdra 2
	total=9		'Como resultado devolvemos 9
End Function
%>
</HEAD>
<BODY>
	<%
	valor1 = 1		'Declaramos la variable y la igualamos a 1
	resul = total(valor1)	'Llamada a la funcion con el parametro 
	                      '"valor1", recogemos el resultado en "resul"
	Response.Write (valor1)	'Imprime por pantalla un 2, ya que
	                        'su "valor1" ha sido cambiado.
	%> 
</BODY>

Si el parametro hubiera sido pasado por valor, los cambios aplicados en la función no afectan la variable ya que se trabaja con una copia, no con el original. Asi pues, es aconsejable declarar la forma en que los parametros serán recogidos por la función, para ello disponemos de dos palabras reservadas: ByVal y ByRef, por valor y por referencia , respectivamente. Veamos el ejemplo anterior, esta vez pasando el parametro por valor:

<%@ LANGUAGE= "VBSCRIPT" %>
<HEAD>
<TITLE>Un Ejemplo</TITLE>
<%
Function total (ByVal valor1) 	'Declaramos la función, esta 
                                'vez pasamos el parametro por valor.
   valor1 = 2 		'"valor1" valdra 2 pero solo en esta copia, 
                  'en realidad el original sigue valiendo 1.
   total=9		'Como resultado devolvemos 9
End Function
%>
</HEAD>
<BODY>
<%
	valor1 = 1	'Declaramos la variable y la igualamos a 1
	resul = total(valor1)	'Llamamos a la funcion con el parametro 
                        '"valor1", recogemos el resultado en "resul"
	Response.Write (valor1)	'Imprime por pantalla un 1, ya que 
	                        '"valor1" NO ha cambiado.
%> 
</BODY>

En resumen, cuando declareis una función, indicad también la forma del paso de parámetro. Además de ser un código más legible y robusto también facilitaréis las cosas por si queréis migrar a .NET en un futuro.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP