Blog de Gonzalo

FUNCIONES ANÓNIMAS

En php se permite el uso de funciones anónimas desde la versión 5.3.0. Una función anónima, o expresiones lambda, es una función que no tiene nombre, y por tanto no está enlazada a ningún identificador. Las funciones anónimas se usan como callbacks de algunas funciones como array_map y en la programacioón funcional.
Un ejemplo sencillo de función anónima sería:


$saludo = function() {
return 'HOLA';
};

echo $saludo(); // Devuelve: HOLA
//Otro ejemplo
$func = function($message) {

if ($message) {
echo $message;
} else {
echo 'No hay mensaje';
}
}; // nótese que el ';' al final de esta llave es necesario.
call_user_func($func);
$func('buenas tardes');
call_user_func($func, 'Buenos días');

También existe el concepto de closure es una función anónima que captura el scope actual, y proporciona acceso a ese scope cuando se invoca el closure y permiten usar variables mediante la palabra use.
Un ejemplo de closure sería:

$colorCoche = 'rojo';
$mostrarColor = function() use ($colorCoche) {
echo 'El color del coche es $colorCoche';
};
$mostrarColor(); // Mostrará El color del coche es rojo

Os invito a hacer un var_dump de una variable que tiene una función anónima.

Compartir en twitter