Cómo pasar parámetros en las funciones PHP
Siguiendo la estela de algunos artículos prácticos sobre PHP que hemos publicado recientemente, un lenguaje de gran relevancia a la hora de crear una tienda online o sitio web, explicamos con detalle la definición y uso de funciones en PHP, el paso de parámetros por valor, por referencia, los valores predeterminados, etc. [banneroferta product=0]
Paso de parámetros
Los datos que reciben las funciones se llaman parámetros y su uso es para efectuar las operaciones de estas. Podemos enviar cualquier número de parámetros a la función e incluso podemos dejarla sin ninguno.
Con dos paréntesis vacíos en la cabecera a la hora de declararla, indicamos que la función no recibirá ningún parámetro. En el siguiente ejemplo, realizamos una función que nos muestra la fecha de hoy:
function fecha_dehoy() { echo date('d/m/Y'); }
En la función que hemos declarado no necesitamos enviarle ningún parámetro, por eso se invoca indicando los paréntesis vacíos.
fecha_dehoy();
Si queremos recibir parámetros tendríamos que definirlos en la cabecera.
function laFuncion ($parametro1, $parametro2)
Nuestra función se llama laFuncion y, en este caso, recibe un par de parámetros sin necesidad de indicar el tipo de datos que sea.
La validez que tienen esos parámetros, es solo cuando se ejecuta esa función, por lo que son de ámbito local y que dejan de existir cuando ésta finaliza.
Los parámetros se pasan por valor
Los parámetros se pasan a la función por valor, lo que quiere decir que el cambiar el dato de un parámetro no actualiza el dato de la variable que se ha pasado a la función. Esto lo podemos ver en el siguiente ejemplo de manera más clara:
function porELvalor ($parametro1){ $parametro1='Esta vez'; echo ' ' . $parametro1; //escribe 'Esta vez' } $mivariable = 'no ha cambiado nada '; porELvalor ($mivariable); echo ' ' . $mivariable; //escribe 'no ha cambiado nada'
La página mostrará el siguiente resultado: Esta vez no ha cambiado nada
Pasar los parámetros por referencia
Al contrario que el anterior, disponemos de el paso de parámetros por referencia, en el que el valor de un parámetro dentro de una función, si que afecta al valor de la variable original. Con un & al comienzo de los parámetros podremos realizar esto.
function porLAreferencia(&$cadena) { $cadena = 'Sí ha cambiado cambiado'; } $str = 'Esto es una cadena que no se mostrará'; porLAreferencia ($str); echo $str; // Imprime 'Si ha cambiado'
La página mostrará por pantalla el siguiente resultado: ‘Sí ha cambiado’.
Parámetros predeterminados
Si queremos que nuestros parámetros tengan un valor predeterminado cuando no se les ha pasado ninguno previo, podemos definirlos en nuestra función como en el ejemplo que os mostramos a continuación:
function pordefecto ($parametro1='Arsys';$parametro2=7)
- $parametro1 tiene como valor por defecto Arsys, y $parametro2 tiene 5 como valor predeterminado.
- Si no indicamos a la función valores previos, se asignarán los predeterminados: pordefecto () // $parametro1 vale Arsys y $parametro2 vale 5.
- Si realizamos la llamada a la función indicando un valor, se tendrá en cuenta para el parámetro primero. pordefecto («Arsys») // $parametro1 vale Arsys y $parametro2 vale 5.
Hay que tener en cuenta que, si queremos usar parámetros con valores predeterminados, es necesario declararlos al final de la cabecera de la función.