Funciones Parte 3 (Parámetros por valor, por referencia y por defecto)
En esta entrega vamos a aprender sobre los parámetros en las funciones. Primero que nada es necesario mencionar que la información que se le pasa a las funciones puede pasársele por medio de una serie de constantes y/o variables separadas por comas, como ya vimos en la entrega anterior. Los parámetros que se pasan a las funciones pueden ser por valor, por referencia y parámetros por defecto.
Parámetros por valor:
Por defecto, los parámetros se pasan por valor. Esto significa que si el valor de la variable que se pasa como parámetro a la función sufre algún cambio en su valor dentro de la función, éste cambio no afectará al valor original de la variable.
El ejemplo siguiente aclara las dudas de mejor manera:
<?php
$original = "Esto es fuera de la función";
function cambio($original){
$original = "Esto es dentro de la función";
echo $original;
}
echo "Fuera de la función la variable es: ";
echo $original."<BR>";
echo "Dentro de la función, la variable es: ";
cambio($original);
echo "<BR>Esto está fuera de la función de nuevo: ";
echo $original;
?>
Lo anterior produce el siguiente resultado:
Parámetros por referencia:
Cuando se pasan parámetros por referencia, le damos autorización a la función (¿qué tal?, ¡verso sin mucho esfuerzo!) de cambiar permanentemente el valor original de la variable.
Para pasar siempre un parámetro por referencia, basta con anteponer un ampersand (&) al nombre del parámetro en la definición de la función de la siguiente forma:
<?php
$original = "Esto es fuera de la función";
$original = "Esto es dentro de la función y fuera de la función";
}
echo "Fuera de la función la variable es: ";
echo $original."<BR>";
echo "Dentro de la función, la variable es: ";
cambio_total($original);
echo "<BR>Esto está fuera de la función de nuevo: ";
?>
El código anterior produce la siguiente salida:
Como se darán cuenta, la variable $original cambia definitivamente de valor al entrar al cuerpo de la función, gracias a que su parámetro (es decir la variable $original) se ha pasado por referencia.
Parámetros por defecto:
Los valores por defecto son expresiones constantes y no variables, que se pasan a la función. Una observación importante que debemos hacer, es que los parámetros por defecto deben ser declarados a la derecha de cualquier parámetro que no sea por defecto pasado a la función.
El ejemplo siguiente demuestra lo que significa pasar un parámetro por defecto:
<?php
function por_defecto($autor, $libro = "Cien años de soledad"){
?>
Como ya habían imaginado, lo anterior produce la siguiente salida:
Muy bien, en cuanto a funciones, lo anterior es lo más importante. Estamos seguros que con esto, sus programas se volverán verdaderamente intensos e interesantes. En nuestra próxima entrega, aprenderemos sobre estilo y algunos consejos de cómo hacer nuestros programas más profesionales y documentados.
Por el momento, ¡hasta pronto!