Objetivos
Funções Anônimas e Arrow
Função anônima são funções que não possuem nome sendo declaradas e atribuidas
à uma variável. Esse tipo de função possue as mesmas características de funções vistas
em PHP Básico: Funções.
Funções arrow são funções anônimas, sem nome e sem palavra reservada function,
substituída por fn, que retornam valor. Essas também possuem as mesmas
características de funções vistas em
PHP Básico: Funções, com exceções.
Nesta parte do tutorial vamos aprender a declarar e utilizar esses tipos de funções
mencionados.
Função anônima
Funções anônimas em PHP, como mencionado, são funçoes sem nome e que são declaradas
de acordo com a sintaxe abaixo:
Sintaxe
$variavel = function(lista_parametros)
{
//corpo
//retorno
};
Onde
function: palavra reservada identificar função
Exemplo 1
<?php
$funcao = function($val)//declaração e atribuição
{
echo $val,"\n";
};
$funcao(1); //chamada
$funcao(1.99); //chamada
$funcao("uma string PHP"); //chamada
?>
Saída
1
1.99
uma string PHP
Abaixo, um exemplo da declaração de uma função anônima com parâmetros e retorno:
Exemplo 2
<?php
$funcao = function(int $val):int
{
return $val*$val;
};
echo $funcao(2);
?>
Saída
4
Função anônima como parâmetro/argumento e retorno
O uso de funções anônimas como parâmetro/argumentos é feita da mesma forma como
para outros tipos. Basta declarar um parâmetro, e ao invocar a função, passar uma
função anônima como argumento.
Exemplo 3
<?php
//função principal que recebe função anônima como argumento
function calculo($val1,$val2,$anonima)
{
$anonima($val1,$val2);
}
//função anônima para somar 2 números
$funcao_anonima = function($val1,$val2)
{
echo $val1 + $val2;
};
//passando função anônima como argumento
calculo(1,1,$funcao_anonima);
?>
Saída
2
Para retornarmos uma função anônima, basta utilizarmos o a palavra return
como já foi feito com outros tipos de dados primitivos.
Exemplo 4
<?php
function funcao()
{
$var = function($param)
{
echo $param;
};
return $var;
}
$retorno = funcao();
$retorno("uma string");
?>
Saída
2
Expressões arrow são funções anônimas, sem nome e sem palavra reservada
function, substituída por fn, que podem receber argumentos e
retornar valor. A declaração de uma função arrow é feito como na sintaxe abaixo:
Sintaxe
$variavel = fn(argumentos) => <expressao> ;
Onde
fn: Palavra reservada para declaração de função arrow.
argumentos: argumentos separados por (,). Não obrigatório
<expressao>: Uma expressão utilizando os argumentos.
Notas
- Não podem conter comandos de decisão(exceto ?:), repetição ou escolha
- Só podem ter uma expressão e um retorno
- Podem ser usadas como parâmetro,argumento e retorno
Exemplo 5
<?php
$funcao = fn($a,$b) => $a + $b; //declaração
echo $funcao(1,2); //chamada
?>
Saída
3
Exemplo 6
<?php
$funcao = fn($a,$b) => ($a > 0) ? $a : $b;
echo $funcao(1,0);
?>
Saída
1
Funções arrow como parâmetro,argumento e retorno
O uso de funções arrow como parâmetro/argumentos é feita da mesma forma utilizada
para outros tipos. Basta declarar um parâmetro normalmente e ao invocar a função,
passar uma função arrow como argumento.
Exemplo 7
<?php
//função principal que recebe função arrow como argumento
function calculo($val1,$val2,$arrow)
{
return $arrow($val1,$val2);
}
//função arrow para somar 2 números
$arrow = fn($val1,$val2) => $val1 + $val2;
//passando função anônima como argumento
echo calculo(1,1,$arrow);
?>
Saída
2
Para retornarmos uma função arrow, basta utilizarmos o a palavra return
como já foi feito com outros tipos.
Exemplo 8
<?php
function calculo(){
$arrow = fn($val1,$val2) => $val1 + $val2;
return $arrow;
}
$retorno = calculo();
echo $retorno(1,1);
?>
Saída
2
Histórico de atualizações
- 21/08/2025 - revisão 3 - Ajustes: pontuais, sintaxes e targets de links
- 21/09/2024 - revisão 2 - ajustes gramaticais pontuais e outros ajustes
- 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
- 20/09/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.