Emplear use() en funciones anónimas

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

En algunos casos vemos, sobre todo en códigos PHP recientes, que la declaración “anónima” de una función se acompaña del empleo de use() para pasarle variables a la función. Un ejemplo sería el siguiente:

$miFuncion = function() use ($nombre)
{
    echo "Hola, ".$nombre;
}

Esta sintaxis puede resultar un poco confuso si no estás familiarizado con él. Y, si te estás iniciando en el mundillo de los frameworks PHP lo vas a ver muy a menudo. Vamos a ver que es lo que hace, y cómo hay que usarla.

En realidad, esto sería equivalente a lo siguiente:

$miFuncion = function($nombre)
{
    echo "Hola, ".$nombre;
}

O, también a lo que aparece a continuación:

$miFuncion = function()
{
    global $nombre;

    echo "Hola, ".$nombre;
}

Lo único con lo que hay que tener cuidado es que, cuando emplees la primera sintaxis (la que recurre a use()) la variable o variables que emplees deberán estar declaradas, y asignadas, ANTES DE DECLARAR LA FUNCIÓN. Con las otras dos sintaxis (las de siempre, para entendernos), basta con que las variables empleadas estén declaradas antes de invocar la función. Por lo tanto, podemos decir que la sintaxis con use() es más estricta, obligándonos a seguir un esquema de desarrollo más organizado, lo que siempre es bueno.

No siempre es posible declarar y asignar las variables antes de declarar la función pero, cuando sea posible, deberemos hacerlo así, mejorando, de este modo, la legibilidad y mantenibilidad de nuestro código.

     

Deja un comentario

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