Compartilhe
Ir em baixo
avatar

Mensagens : 1808
Pontos : 16497
Evolução : 100

Ver perfil do usuário

Funções anônimas no PHP

em Sex 27 Maio 2011 - 13:20
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.
Voltar ao Topo
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum