Funciones anónimas
CategoriasPHPProgramación

Funciones anónimas PHP

Funciones anónimas en PHP

Me parece interesante hablar sobre estas funciones que, aunque se encuentran disponibles desde la versión 5.3.0 de PHP, o sea, hace ya bastante tiempo, creo que no todo el mundo las conoce. Por eso voy a intentar explicar un poco qué son y que uso tienen.

Básicamente una función anónima en PHP no es otra cosa que una función sin nombre.

Algunos ejemplos:

$saludar = function () {
    return "Hola, que tal?";
};

echo $saludar(); // Salida: Hola, que tal?
$suma = function ($x, $y) {
    return $x + $y;
};

echo $suma(2, 3);  // Salida: 5

Como vemos arriba, tanto la variable $saludar como $suma, contienen una función anónima.

También podemos llamarla o crearla desde otra función en forma de argumento:

function hablar($mensaje)
{
    echo $mensaje();
}

hablar(function () {
    return "Hablo sobre cualquier cosa";
});

En el ejemplo hemos creado una función llamada “hablar” que como parámetro recibe otra función, una función anónima.

En las funciones anónimas también podemos capturar las variables del ámbito actual donde se encuentra la función. Me explico.

Volvamos al ejemplo de la función suma, pero con una ligera modificación:

$x = 2;
$y = 3;
$suma = function () use ($x, $y) {
    return $x + $y;
};

echo $suma(2, 3);  // Salida: 5

Con la palabra reservada “use”, lo que hacemos es capturar o literalmente decirle a la función algo así como “usa estas variables”.

Podemos pasarle también argumentos:

$nombre = "Óscar";
$saludar = function ($saludo) use ($nombre) {
    echo $saludo . ', ' . $nombre;
};
$saludar("Hola"); // Devuelve: Hola, Óscar

También con el uso del símbolo “&” (ampersand) podemos modificar o reiniciar el valor de una variable pasándola por referencia así:

$mensaje = 'Hola';

$mostrarMensaje = function () use (&$mensaje) {
    $mensaje = 'Adios';
};

$mostrarMensaje();
echo $mensaje; // Salida: Adios

Principalmente su uso como hemos visto es muy sencillo y las podemos utilizar en aquellos casos en donde necesitemos definir una función en un contexto muy limitado donde no se requiera gran lógica, porque de lo contrario, sí que sería recomendable crear una función normal, pero, el principal uso o necesidad de crear una función anónima es para usarla como función callback, es decir, pasarla como argumento para otra función.

Arriba he puesto algunos ejemplos, pero un ejemplo más completo o más real podría ser el siguiente:

$numeros = [1, 2, 3, 4];
$dobles = array_map(function ($x) {
    return $x * 2;
}, $numeros);

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

Donde como vemos, function($x) { return $x * 2; } es una función anónima que dobla el valor de $x y array_map aplica esta función a cada elemento del array $numeros.

Y hasta aquí un poco el tema de las funciones anónimas. Podemos seguir investigando en la documentación oficial.

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.