A partir da versão 7.4 do PHP, é possível utilizar Arrow Functions, que são funções anônimas que tornam o código mais limpo quando precisamos executar apenas uma instrução dentro de uma função.
Neste artigo, exploraremos em detalhes esse recurso que facilita a escrita de funções anônimas no PHP. Veremos exemplos práticos de uso, peculiaridades e como aproveitar ao máximo essa funcionalidade.
Se você está interessado em aprender sobre os recursos mais modernos da linguagem PHP, confira nossos cursos e fique por dentro de todas as novidades!
Curso PHP - Fundamentos
Conhecer o cursoIntrodução às Arrow Functions no PHP
As Arrow Functions são uma adição poderosa ao PHP a partir da versão 7.4. Elas fornecem uma maneira concisa de escrever funções anônimas quando precisamos executar apenas uma única instrução. A sintaxe das Arrow Functions no PHP é bastante simples:
fn(<parâmetros>) => <expressão>;
Vejamos um exemplo prático para melhor entender como utilizar as Arrow Functions:
$somarDoisNumeros = fn($n1, $n2) => $n1 + $n2;
echo $somarDoisNumeros(10, 20); //Imprime 30
/*
* A função acima é equivalente a:
*/
$somarDoisNumeros = function ($n1, $n2) {
return $n1 + $n2;
};
Neste exemplo, criamos uma Arrow Function chamada $somarDoisNumeros
, que recebe dois parâmetros $n1
e $n2
, e retorna a soma desses valores. Como resultado, temos a saída “30” após a execução da função.
É importante notar que as Arrow Functions também podem ser escritas da forma tradicional, utilizando function
, como no exemplo acima, com o mesmo resultado.
Curso PHP Avançado
Conhecer o cursoCapturando Variáveis com Arrow Functions
Ao utilizar Arrow Functions, é possível capturar variáveis automaticamente dentro do escopo em que foram definidas. Vamos explorar essa característica com exemplos práticos:
<?PHP
$multiplicador = 3;
$multiplicacao = fn($n) => $n * $multiplicador;
echo $multiplicacao(2); //Imprime 6
/*
* Porém elas não permitem alterar um valor externo
*/
$valorExterno = 10;
$incrementaValor = fn() => $valorExterno++;
$incrementaValor();
echo $valorExterno; //Imprime 10
Neste exemplo, criamos uma Arrow Function chamada $multiplicacao
, que recebe um parâmetro $n
e retorna a multiplicação desse valor pelo $multiplicador
. Como o $multiplicador
foi definido externamente à função, a Arrow Function o “captura” automaticamente, permitindo seu uso dentro da expressão.
Entretanto, é importante observar que, embora as Arrow Functions possam capturar variáveis, elas não permitem alterar um valor externo, como no exemplo acima. A Arrow Function tenta incrementar o valor de $valorExterno
, mas essa alteração não é refletida fora do escopo da função. Portanto, o valor original de $valorExterno
não é modificado.
Curso PHP - Novidades dos PHP 7.0 e 7.1
Conhecer o cursoOutros Recursos das Arrow Functions
As Arrow Functions também suportam diversos recursos que são comuns em outras funções no PHP. Abaixo, temos alguns exemplos da documentação do PHP:
<?php
fn(array $x) => $x;
static fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;
Esses exemplos mostram diferentes formas de declarar parâmetros, especificar o retorno e lidar com referências. As Arrow Functions herdam essa flexibilidade, possibilitando uma ampla gama de aplicações em diferentes contextos.
Curso PHP - Recursos essenciais
Conhecer o cursoUtilizando Arrow Functions em arrays
Vamos ver agora um exemplo prático de utilização das Arrow Functions em conjunto com a função array_map
para manipulação de arrays:
<?PHP
$cursos = [
0 => [
'nome' => 'php',
'carga' => '10 horas'
],
1 => [
'nome' => 'CSS',
'carga' => '9 horas'
],
];
$nomes = array_map(fn($curso) => $curso['nome'], $cursos);
var_dump($nomes); //Imprime ['PHP', 'CSS']
Neste exemplo, temos um array $cursos
que contém informações sobre diferentes cursos. Usando a função array_map
em conjunto com a Arrow Function, podemos extrair apenas os nomes dos cursos e criar um novo array chamado $nomes
. O resultado será um array contendo apenas os nomes “PHP” e “CSS”.
As Arrow Functions se mostram uma ótima ferramenta para operações simples e rápidas em arrays, proporcionando uma sintaxe mais elegante e direta.
Conclusão
As Arrow Functions fortalecem o PHP, encurtando e simplificando o código, especialmente em funções anônimas com apenas uma instrução. Sua sintaxe clara facilita a escrita de código mais eficiente.
Experimente utilizar Arrow Functions em seus projetos e descubra como tornar seu código ainda mais poderoso e legível!