Advertisement
  1. Code
  2. PHP

Funciones en PHP: valores de retorno y parámetros

by
Read Time:8 minsLanguages:

Spanish (Español) translation by Ana Paulina Figueroa Vazquez (you can also view the original English article)

Las funciones son una parte importante de los lenguajes de programación. Estas nos ayudan a evitar el código duplicado, al permitirnos ejecutar el mismo conjunto de instrucciones una y otra vez en diferentes datos.

En este tutorial hablaremos sobre las funciones en PHP. Cubriremos todos los conceptos básicos de las funciones en PHP, y aprenderás cómo crear tus propias funciones definidas por el usuario en PHP. Aprenderás sobre la devolución de valores de una función y sobre los parámetros de las funciones en PHP. También aprenderás otros conceptos, como el establecimiento de valores predeterminados de argumentos o el envío de un argumento por referencia.

Funciones internas en PHP

PHP viene con muchas funciones integradas que puedes usar en tu programa. Algunas de estas funciones se suministran de forma estándar, mientras que otras están disponibles a través de extensiones PHP específicas.

PHP viene con muchas funciones para trabajar con cadenas. Por ejemplo, puedes usar la función str_contains() para verificar si una cadena contiene una subcadena, y la función wordwrap() para ajustar una cadena de acuerdo a una cantidad dada de caracteres. Estas funciones están disponibles de manera estándar para que puedas usarlas.

Existe otro conjunto de funciones de PHP para manipular imágenes que está disponible si instalas la biblioteca de la extensión GD. Una vez que la extensión esté habilitada, podrás usar funciones como imagecreatetruecolor()imagecreatefrompng() e imagefill() para crear y manipular imágenes.

Si alguna vez recibes un error fatal con el texto "función indefinida" en PHP, pero estás seguro de que es una función interna, asegúrate de haber instalado las extensiones respectivas para usar esa función.

Funciones definidas por el usuario en PHP

También puedes definir tus propias funciones en PHP. Definir tus propias funciones se convierte en una necesidad en casi todos los programas no triviales que escribas. Estas son una excelente manera de evitar el código duplicado y los errores.

Aquí puedes ver el código básico para definir una función que genera un saludo cuando la llamamos posteriormente.

En el ejemplo anterior, simplemente enviamos un nombre a la función greet(), y esta desplegó una salida diferente en base al nombre especificado mediante el uso de la función echo.

Debes seguir reglas específicas al definir una función. El nombre de una función debe comenzar con una letra o un guion bajo. Después de eso, puedes usar diferentes longitudes de números, letras y guiones bajos en el nombre. Esto significa que greet01()_greet() y greet_01() son nombres válidos para las funciones en PHP. Sin embargo, el uso de 01_greet() como nombre de función devolverá un error de sintaxis.

Devolución de una función en PHP

En el ejemplo anterior, nuestra función greet() definida por el usuario no devolvió nada. Simplemente mostró un par de oraciones en base a la entrada usando la función echo. La devolución de cualquier cosa dentro de cualquier función que definamos en PHP depende totalmente de nosotros.

Cuando quieres devolver algo, debes usa la sentencia return. Una función puede devolver cualquier tipo de valor en PHP. Esto incluye cadenas, enteros, flotantes, arreglos o incluso objetos.

En el ejemplo anterior, la función palindrome() convierte cualquier cadena dada en un palíndromo añadiéndola a su versión inversa. Ahora, en lugar de mostrar la salida directamente usando echo, la asignamos a una variable. Ahora podemos manipular aún más la variable, pero solamente la mostraremos usando echo en este ejemplo.

Una función puede tener múltiples valores de retorno, y la ejecución de la función se detiene inmediatamente una vez que esta última encuentra una sentencia return. Esto significa que solamente puedes devolver un valor desde una función. Sin embargo, puedes evitar esta limitación devolviendo un arreglo que contenga como elementos todos los valores que quieres devolver.

En el ejemplo anterior, queríamos que la función devolviera mucha información sobre el nombre que se le envió. Así que usamos un arreglo con valores mixtos. Después, los valores enviados se asignan a diferentes variables usando list().

También debes tener en cuenta que la función greet() no mostró el texto "Bye Monty!" ("¡Adiós, Monty!") mediante el uso de la función echo en nuestro programa. Esto se debe a que la ejecución de la función se detuvo tan pronto como esta última encontró una sentencia return.

Los parámetros de una función en PHP

Los parámetros de una función (también conocidos como "argumentos de una función") se usan para enviar una entrada a una función, sobre la cual esta última puede actuar para darnos la salida deseada. Hasta ahora, en este tutorial solamente hemos definido funciones con un solo parámetro.

Sin embargo, la cantidad de parámetros que queramos enviar a una función depende totalmente de nosotros. Puede ser cero para funciones que no requieran ningún tipo de entrada de nuestra parte. También puede ser dos, tres, cinco o diez. También puedes enviar arreglos como parámetros.

Este es un ejemplo de funciones de PHP que aceptan cero y dos parámetros, respectivamente.

Podemos volver a escribir la segunda función para enviar un arreglo como nuestro único parámetro. Simplemente extraeremos diferentes valores del arreglo en el interior de nuestra función. Esto puede ser útil en situaciones en las que quieras manipular arreglos o enviar muchos valores a una función.

Especificación de valores predeterminados de argumentos

Supongamos que creas una función de saludo que se utiliza principalmente para desear buenos días a los usuarios. Siendo así, el valor de $time en nuestra función greeting_time() generalmente será morning (mañana). En tales casos, puedes lograr que tu programa sea más corto y tu código más fácil de leer si asignas valores predeterminados razonables a argumentos específicos.

En realidad, esto es bastante común en las funciones integradas de PHP. La función strpos() se usa para encontrar la ubicación de una subcadena en una cadena. La función recibe tres argumentos: la cadena, la subcadena y la posición en la que quieras comenzar. La función devuelve el índice de la subcadena en la cadena.

El parámetro de posición es el punto en el que quieres comenzar a buscar la subcadena. Por lo general, queremos buscar dentro de la cadena principal desde su posición inicial. Esto significa que el valor de desplazamiento normalmente será cero.

En lugar de pedirnos que especifiquemos el valor de desplazamiento como 0 cada vez que llamamos a la función, PHP establece su valor en 0 de forma predeterminada. Ahora solamente necesitamos especificar el tercer parámetro cuando queramos cambiar el desplazamiento a otro valor.

También podemos establecer un valor predeterminado para diferentes parámetros en nuestras propias funciones. Aquí puedes ver un ejemplo:

Hay dos cosas que debes tener en cuenta sobre los parámetros o argumentos predeterminados. En primer lugar, deben ser un valor constante, como morning (mañana) en nuestro caso. Cualquier argumento con valores predeterminados siempre debe estar del lado derecho. Por ejemplo, la siguiente definición de función provocará un error durante la primera llamada.

La razón del error es la ambigüedad del argumento Monty. PHP no tiene forma de saber si quieres que sea el valor de $name o si quieres usarlo en lugar del valor predeterminado $time.

El envío de argumentos por valor contra el envío por referencia

De forma predeterminada, los diferentes argumentos son enviados por valor a una función de PHP. De esta forma, podemos evitar cambiar el valor del argumento enviado a una función. Sin embargo, si tienes la intención de cambiar el valor de los argumentos que envías a una función de PHP, puedes enviar esos argumentos por referencia.

El siguiente ejemplo debería ayudarte a comprender la diferencia entre estos dos enfoques.

El argumento en r_palindrome() se envía por referencia. Esto significa que, cuando enviamos $word_b a r_palindrome(), el valor de $word_b cambia y se vuelve un palíndromo.

Conclusión

En este tutorial hemos cubierto muchos de los conceptos básicos relacionados con las funciones en PHP. Con suerte, ahora eres capaz de escribir tus propias funciones definidas por el usuario que pueden aprovechar todo lo que aprendimos aquí. No dudes en hacer cualquier pregunta que tengas sobre este tema en los comentarios.

Aprende PHP con un curso gratuito en línea

Si quieres aprender PHP, ¡consulta nuestro curso gratuito en línea sobre los fundamentos de PHP!

En este curso, aprenderás los fundamentos de la programación en PHP. Comenzarás con los conceptos básicos, aprendiendo cómo funciona PHP y escribiendo bucles y funciones simples en él. Luego avanzarás a la codificación de clases para una programación orientada a objetos (POO) sencilla. En el camino, aprenderás las habilidades más importantes para escribir aplicaciones para la web: tendrás la oportunidad de practicar la respuesta a las solicitudes GET y POST, analizar JSON, autenticar usuarios y usar una base de datos MySQL.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.