Funciones flecha en PHP
CategoriasPHPProgramación

Funciones flecha en PHP

Funciones flecha o arrow functions

Hace unos días escribí un artículo sobre las funciones anónimas, pues bien, ahora hablaremos sobre las funciones flecha (arrow functions en inglés), que sí, no son otra cosa que funciones anónimas, pero con una sintaxis más corta.

Personalmente, desconocía que existía otra forma de llamarlas o crearlas. Por eso me veo en la necesidad de escribir un post al respecto.

Como acabo de decir, las funciones flecha (arrow functions) en PHP es una característica introducida en la versión 7.4 de PHP, que permite definir funciones anónimas de una manera concisa, rápida y legible.

Su sintaxis es:

fn(argumentos) => expresión;

Argumentos: son los parámetros que la función toma

Expresión: es el valor que la función devuelve.

Por ejemplo:

$suma = fn($x, $y) => $x + $y;
echo $suma(2, 8);  // Salida: 10

Como vemos, la sintaxis es mucho más corta y fácil de leer. Otra característica importante es que no es necesario usar la palabra clave “use” para capturar las variables del contexto en el que se define la función. En una función anónima tradicional, si queríamos capturar una variable “exterior” era necesario usar use. Aquí no hace falta.

Un ejemplo super tonto:

$numero = 8;
$sumar = fn ($x) => $x + $numero;

echo $sumar(2);  // Salida: 10

Otro ejemplo, pero más completo 😛

$numeros = [1, 2, 3, 4];
$dobles = array_map(fn ($x) => $x * 2, $numeros);

print_r($dobles);  // Salida: [2, 4, 6, 8]

Lo que hace es simple, array_map aplica la función flecha a cada elemento del array $numeros.

Como vemos las características son:

  • Sintaxis más corta y legible.
  • No es necesario usar use para capturar variables externas.

Recuerda que son útiles cuando quieres definir funciones pequeñas. Sin embargo, si quieres definir funciones más complejas con más lógica o más funcionalidad, lo recomendable es usar las funciones tradicionales de toda la vida.

Sobre el autor

Comparte:

Este artículo está publicado bajo una licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional . Puedes compartirlo y adaptarlo, incluso con fines comerciales, siempre que cites al autor y mantengas esta misma licencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
Responsable Óscar Martínez +info...
Finalidad Gestionar y moderar los comentarios +info...
Legitimación Consentimiento del interesado. +info...
Destinatarios No se cederán datos a terceros, salvo obligación legal +info...
Derechos Acceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicional Puedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.