Bom, estar ai um pequeno tutorial ensinando a utilizar funções anônimas no PHP.

O que diabos é uma função anônima?
Função anônima nada mais é que uma função que não tem nome.

Não tem nome? Como assim?
É uma função que você não declara do jeito convencional, por isso não tem nome.

Mas se ela não tem nome, como vou chamar-la? E qual a utilidade disso?
A questão é que você não vai chamar-la. Você vai simplesmente passar-la como parâmetro, para alguma outra função, método ou variável.
A vantagem disso é que você não precisa escolher um nome, e ela diminui o código e aumenta a legibilidade, em alguns casos.



Vamos tomar por exemplo, a seguinte função:

Código:

function ola_usuario($nome) {
    return strtoupper("Seja bem vindo {$nome}, como vai?");
}

$mensagem_boas_vindas = ola_usuario("matcher");



É um código funcional? Claro, é. Mas não é chato ter que criar uma função só para retornar essa mensagem? Não seria ótimo se tivesse um jeito mais fácil? Imagem

Mas tem sim, funções anônimas! O código não fica muito melhor escrito dessa forma?


Código:

$mensagem_boas_vindas = function($nome){
    return strtoupper("Seja bem vindo {$nome}, como vai?");
};




Como podem ver, não mudou muita coisa...só que nós passamos a declaração da função para a variável, e a função não tem nome, ou seja, só poderá ser chamada essa vez.

Um outro bom exemplo de uso de funções anônimas é quando você precisa passar uma função como callback para outra função:


Código:

echo preg_replace_callback('~-([a-z])~', function ($match) {
        return strtoupper($match[1]);
}, 'ola-nfx'); //produz "olanfx"



Como sabem. a função preg_replace_callback recebe três parâmetros: uma pattern de regex, uma função de callback e a string. O segundo parâmetro, ao invés de uma função regular, é uma função anônima.