Bgames
Olá visitante! Seja bem vindo ao nosso fórum!

Para você ter total acesso ao nosso fórum é preciso que você se cadastre.

Cadastre-se Aqui!


PARA VER LINKS E IMAGENS É PRECISO SE REGISTRAR!

Funções anônimas no PHP

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Funções anônimas no PHP

Mensagem por BGames em Sex 27 Maio 2011 - 12: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.

BGames


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


Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum