Curso gratuito de PHP. Regístrate para hacer un seguimiento de tu progreso →

PHP: Funciones y su llamado

La suma, la concatenación y otras operaciones que hemos visto son capacidades básicas de los lenguajes de programación. Pero con las cadenas de texto se pueden realizar operaciones más complejas. Se pueden invertir, cambiar el caso de las letras, eliminar caracteres innecesarios.

A un nivel más alto, existe la lógica aplicada a una aplicación específica. Los programas pueden realizar transacciones monetarias, calcular impuestos, generar informes. La cantidad de operaciones similares es infinita y depende de cada programa en particular. Y todas ellas deben estar expresadas en código. Para eso, las funciones nos ayudan, y en esta lección aprenderemos sobre ellas.

Tipos de funciones

Para expresar cualquier operación arbitraria en programación, existen las funciones. Pueden ser funciones incorporadas o agregadas por el programador. Ya estamos familiarizados con una función incorporada: print_r().

Las funciones son una de las construcciones clave en programación, sin ellas no se puede hacer prácticamente nada. Primero aprenderemos a utilizar las funciones ya creadas y luego aprenderemos a crear las nuestras propias.

Cómo trabajar con funciones incorporadas

Comenzaremos con funciones sencillas para trabajar con cadenas de texto. A continuación, se muestra un ejemplo de llamado a la función strrev(), que invierte una cadena de texto:

<?php

// Llamado a la función strrev con el argumento '¡Hola!'
$resultado = strrev('¡Hola!');
print_r($resultado); // => '!aloH'

Hemos creado la variable $resultado y le hemos indicado al intérprete que guarde en ella el resultado que devuelve el llamado a la función strrev(). En este sentido, las funciones son similares a las operaciones, siempre devuelven un resultado.

La expresión strrev('¡Hola!') significa que se está llamando a la función con el nombre strrev, a la cual se le ha pasado el argumento o parámetro '¡Hola!'.

Las funciones necesitan argumentos para funcionar, al igual que los operadores necesitan operandos. La función strrev() invierte la cadena de texto que se le pasa como argumento.

El llamado a una función siempre se indica con paréntesis (). Estos van justo después del nombre de la función. Entre los paréntesis puede haber cualquier cantidad de argumentos, o incluso ninguno. La cantidad depende de la función que se esté utilizando. Por ejemplo, la función pow() recibe dos argumentos y eleva el número pasado como primer parámetro a la potencia indicada como segundo parámetro:

<?php

$resultado = pow(2, 3); // 2 * 2 * 2
print_r($resultado); // => 8

// En PHP moderno, hay un operador especial para elevar a una potencia
$resultado = 2 ** 3; // 8

Ahora veamos un ejemplo de una función que no recibe argumentos. La función rand() genera y devuelve un número aleatorio:

<?php

$resultado = rand();

Los operadores y las funciones son lo mismo. La diferencia está en cómo se escriben. Si consideramos la suma como una función, se vería así:

<?php

3 + 5; // 8
sum(3, 5); // 8

// Incluso se puede escribir así
+(3, 5);

// En PHP, esta sintaxis no es posible, pero hay lenguajes (como Lisp)
// donde se ve muy similar

Pregunta de autoevaluación. ¿Cómo se puede saber qué devuelve el llamado a print_r()? Compruébalo.

Tarea

En el código del programa se han definido dos variables que contienen nombres de empresas. Calcula la longitud total de los nombres en caracteres y muéstrala en pantalla.

¿El ejercicio no pasa la prueba, qué debo hacer? 😶

Si te quedaste atascado, es el momento perfecto para hacer una pregunta en las "Discusiones".
* Asegúrate de incluir la salida de las pruebas. Sin ella, es casi imposible entender qué está mal, incluso si muestras tu código. Los programadores tienen dificultades para ejecutar el código en su mente, pero casi siempre es posible entender a dónde mirar a partir del error que recibiste.

Mi código funciona en mi entorno, pero no aquí 🤨

Las pruebas están diseñadas de manera que verifican la solución de diferentes maneras y con diferentes datos. A menudo, una solución funciona con ciertos datos de entrada pero no con otros. Para entender este punto, revisa la pestaña "Pruebas" y presta atención a los mensajes de error, que suelen contener pistas.

Mi código es diferente a la solución del profesor 🤔

Esto es normal 🙆. En programación, una tarea puede tener muchas soluciones diferentes. Si tu código pasa la prueba, cumple con los requisitos de la tarea.

En raras ocasiones, la solución puede estar ajustada para pasar las pruebas, pero esto suele ser evidente.

Leí la lección, pero no entendí nada 🙄

Crear materiales de aprendizaje comprensibles para todos es bastante difícil. Hacemos nuestro mejor esfuerzo, pero siempre hay margen para mejorar. Si encuentras material que no entiendes, describe el problema en las "Discusiones". Es ideal si puedes formular los aspectos que no entiendes en forma de preguntas. Por lo general, necesitamos unos días para hacer mejoras.

Por cierto, tú también puedes contribuir a mejorar los cursos: en la parte inferior hay un enlace al código fuente de las lecciones, que se puede modificar directamente en el navegador.

Definiciones

  • Función — operación capaz de recibir datos y devolver un resultado; se llama a una función de esta manera: foo().

  • Argumento — información que una función recibe cuando se llama a ella. Por ejemplo, foo(42) es pasar el argumento 42 a la función foo().


¿Encontraste un error? ¿Quieres añadir algo? Las solicitudes de extracción son bienvenidas. https://codica.la/errores
Si te encuentras con dificultades y no sabes qué hacer, pregunta en nuestra gran y amigable comunidad