PHP Dica de código

Dica de Código: Arrow Functions no PHP

Aprenda a usar Arrow Functions no PHP para tornar seu código mais conciso e poderoso. Confira exemplos práticos e dicas essenciais.

há 8 meses 3 semanas

Formação Desenvolvedor PHP
Conheça a formação em detalhes

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!

PHP - Fundamentos
Curso PHP - Fundamentos
Conhecer o curso

Introduçã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.

PHP Avançado
Curso PHP Avançado
Conhecer o curso

Capturando 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.

PHP - Novidades dos PHP 7.0 e 7.1
Curso PHP - Novidades dos PHP 7.0 e 7.1
Conhecer o curso

Outros 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.

PHP - Recursos essenciais
Curso PHP - Recursos essenciais
Conhecer o curso

Utilizando 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!

Autor(a) do artigo

Elton Fonseca
Elton Fonseca

Professor e desenvolvedor. Formado em análise e desenvolvimento de sistema, pós graduado em engenharia e arquitetura de software. É autor de cursos em diversos temas, como, desenvolvimento back-end, cloud computing e CMSs. Nas horas vagas adora estudar sobre o mercado financeiro, cozinhar e brincar com pequeno Daniel. @eltonfonsecadev

Todos os artigos

Artigos relacionados Ver todos