Nesta aula aprenderemos o conceito de função anonima e, como utiliza-las na linguagem PHP. Também faremos um exemplo onde será possível observar as vantagens dessa definição. |
FUNÇÕES ANONIMAS
As funções anônimas, também chamadas de closures, lambda functions, funções de primeira ordem, funções de ordem superior, são blocos de instruções que não possuem nome, podem receber parâmetros e são interpretadas pela linguagem como expressões.
Uma função anônima possui um bloco de instrução, porém, não possuem referência que as identifiquem e, por conseguinte, não estarão no escopo para que possamos invoca-las.
A vantagem das funções anônimas e, que as tornam especiais, é que podemos armazena-las e manipula-las como fazemos com variáveis, e assim, podemos envia-las como sendo um parâmetro de uma função. A função receptora por sua vez, será capaz de executar a função anônima que foi recebida como parâmetro e ainda, passar os argumentos definidos no cabeçalho da mesma e recebendo a resposta da execução.
Assim, temos que uma função anônima possui todas as características e, funciona com os mesmo princípios que qualquer função, porém, como o nome sugere, esta não possui um nome - por isso: anônima!
É comum a utilização de funções anônimas como callback, isto é, passarmos a função anônima como parâmetro e num determinado momento, a função que a recebeu, invoque a função e de continuidade ao processamento.
Para atribuirmos uma função anonima a uma variável, basta declararmos um bloco e atribuirmos este, diretamente, a uma determinada variável, por exemplo:
# o bloco de instrução a seguir, será atribuido à
# variável de nome $func e, para executar o código
# utilizaremos o nome da variável
$func = function($num){
echo "Valor do parâmetro recebido " . $num;
};
# aqui, estamos invocando a função anonima
# declarada nas linhas acima
$func(10);
No bloco de código acima, definimos uma função anonima e, ainda na definição, atribuimos a sua referência à variável $func
. Em seguida, utilizamos a instrução que já estudamos para a definição de funções - function
, definimos um parâmetro de nome $num
e, por fim, definimos o bloco de instrução da função anonima com uma par de chaves. Feito isso, temos um bloco de instrução como qualquer outra, a única diferença é que podemos retornar valores com o uso da instrução return
que, também já foi estudada.
Funções anônimas são expressões como quaisquer outras (como atribuição de números ou manipulação de string), logo, estas podem ser adicionada a uma variável, atribuida a um array e etc.
Como prova de que as funções anonimas são expressões, somos obrigados a utilizar um ponto e vírgula após a definição do bloco de instrução, até porque, a mesma não é uma função, mas sim, uma expressão e, como sabemos, toda expressão é finalizada com ponto-e-vírgula.
Após atribuirmos a função a uma variável, para invoca-la, basta adicionarmos os parêntesis após o nome [da variável´] e, definir os parâmetros conforme a declaração.
EXEMPLO FEITO EM AULA
#FUNÇÕES ANÔNIMAS
$func = function($nome){
echo "O nome enviado como parâmetro é: $nome";
};
function teste($f){
$f("Cláudio");
}
teste($func);
//$func("eXcript");
Tags curso, php, função, função anonima, lambda, closures, função lambda, função de primeira ordem, função de ordem superior, blog
Comentários
comments powered by Disqus