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.