Funciones anónimas en PHP

Al parecer PHP todavía no soporta funciones anónimas. Hoy necesitaba una. Iba a hacer un usort de un arreglo cuyas celdas eran a su vez otros arreglos, motivo por el cual no me servía un sort normal.

Inicialmente hice lo siguiente …

usort($datos['opciones'], "ordenar_opciones_menu");

Y poner el código de la función por fuera de mi clase de Controlador.

function ordenar_opciones_menu($a, $b)
{
    return strcmp($a['titulo'], $b['titulo']);
}

Resultado … muy feo.

Encontré que PHP tiene una forma un poco practica para crear funciones de manera dinámica a partir de una cadena de texto con su código. El ejemplo anterior se simplificó de la siguiente manera.

usort($datos['opciones'],
         create_function('$a, $b',
                         'return strcmp($a["titulo"], $b["titulo"]);'));

Un tanto preferible esta versión.

One thought on “Funciones anónimas en PHP”

Leave a Reply

Your email address will not be published. Required fields are marked *