Los parámetros son variables que recibe una función para utilizarlas en la ejecución de la misma, estos se pueden pasar de 3 formas distintas, por valor, por referencia y por defecto, vamos a ver como pasar parámetros de las 3 formas distintas, como se comportan las funciones al devolver los valores y porqué lo hacen así.
 

Paso de parámetros por valor

 
Cuando pasamos los parámetros por valor a las funciones en php, los cambios que hagamos en estas variables solo tendrán valor en el ámbito de la función, es decir, que no se actualizará la variable en el documento en el que está declarada.
 
Veamos un ejemplo de paso de parámetros por valor, creamos una función a la que llamamos posteriormente pasándole una variable que hemos declarado previamente con un valor 2, si hacemos un echo de esta función tendrá el mismo valor que el que hemos declarado en la función, en cambio, si hacemos un echo de esta variable una vez se ha terminado de ejcutar la función, tendrá el mismo valor con el que se ha declarado en el documento, esto es así porque una vez se termina de ejecutar la función, esta no sabe nada de la variable que le hemos pasado ya que la función ha finalizado.
 

function mifuncion1($fvar) { 
	$fvar = 1; 
	return $fvar;
}
$dvar = 2; 
echo '<p>' . mifuncion1($dvar) . '</p>';
echo '<p>' . $dvar . '</p>';

 

Paso de parámetros por referencia

 
En la función anterior le hemos pasado como parámetro el valor de la variable $dvar que tiene el valor 2, dentro de la función nos devuelve 1, fuera de esta, la variable nos devolverá el valor con el que ha sido declarada en el documento. Si queremos que nos devuelva el valor declarado en la función tendremos que anteponer un ampersand (&) a los parámetros que queremos pasar por referencia en la definición de la función.
 

function mifuncion2(&$fvar) { 
	$fvar = 1; 
	return $fvar;
}
$nvar = 2; 
echo '<p>' . mifuncion2($nvar) . '</p>';
echo '<p>' . $nvar . '</p>';

 
Ahora en la función anterior le hemos pasado como parámetro el valor de la variable $dvar que tiene el valor 2, dentro de la función nos devuelve 1, fuera de esta, la variable nos devolverá el valor con el que ha sido declarada en la función, en este caso también 1, al pasar los parámetros por referencia, hemos modificado el valor de la variable.
 

Paso de parámetros por defecto

 
También podemos asignar un valor por defecto a los parámetros declarándolo en la función, de esta forma la función nos devolverá ese valor a no ser que le pasemos un valor distinto, en caso de que le pasemos un valor distinto la función nos devolverá ese valor.
 

function mifuncion9($fvar=1) { 
	return $fvar; 
}
echo mifuncion9(); 

 
Si le pasamos un valor, este parámetro tomará el valor de la variable declarada en el documento.
 

function mifuncion10($fvar=1) { 
	return $fvar; 
}
$rvar = 2; 
mifuncion10($rvar);
echo $rvar;

 
También podemos pasarle los valores directamente.
 

function mifuncion7($fvar=1) { 
	return $fvar; 
}
echo mifuncion7(2);

 
Tenemos que tener en cuenta que si utilizamos el paso de parametros por defecto, los valores predeterminados deben estar siempre a la derecha de los valores no predeterminados, vemaos un ejemplo.
 

function mifuncion11($nvar, $nvar2 = 1) {
    return $nvar2 . $nvar;
}
$nvar =  mifuncion11(2,1);
$nvar2 =  mifuncion11(2);
echo $nvar;
echo $nvar2;

 
Conclusión: Utilizaremos el paso de parametros por valor cuando no necesitemos que la función nos modifique el valor fuera de la función pero si dentro de ella, utilizaremos el paso por referencia cuando necesitemos que la función modifique el valor tanto dentro como fuera de ella, por último, el paso de valores por defecto nos dá la opción de modificar o no los parametros que pasamos a la función o como hemos visto, que la función no espere esos parametros.
 

Valoraciones


Sé el primero en valorar

* Tu valoración puede tardar hasta 72 horas en publicarse.

He leido y acepto el Aviso legal y condiciones de uso

CAPTCHA


Utilizamos cookies propias y de terceros para el correcto funcionamiento de la web, personalizar el contenido y mostrar publicidad en función de las preferencias del visitante. Puedes encontrar más información en nuestra Política de cookies.

ACEPTAR
Aviso de cookies