Sobes.tech
Junior

O que são funções arrow e funções anónimas em PHP?

sobes.tech IA

Resposta da IA

As funções de seta são açúcar sintático para funções anónimas, introduzidas no PHP 7.4. Elas oferecem uma forma mais concisa de escrever funções lambda simples.

  • Funções anónimas (fechos):

    • Podem incluir mais de uma linha de código e conter lógica complexa.
    • Utilizam a palavra-chave use para importar variáveis do âmbito superior.
    • São mais flexíveis e adequadas para tarefas complexas.
  • Funções de seta:

    • Contêm apenas uma expressão, cujo resultado é retornado implicitamente.
    • Têm acesso automático às variáveis do âmbito superior (não requerem use).
    • Destinadas a operações simples e de uma só linha.

Aqui estão alguns exemplos:

<?php
// Função anónima
$greet = function ($name) {
    return "Olá, " . $name;
};
echo $greet('Mundo') . "\n";

// Função anónima com use
$message = 'Saudações';
$greetWithMsg = function ($name) use ($message) {
    return $message . ", " . $name;
};
echo $greetWithMsg('Amigo') . "\n";
<?php
// Função de seta
$greetArrow = fn ($name) => "Olá, " . $name;
echo $greetArrow('Mundo') . "\n";

// Função de seta com acesso automático ao âmbito superior
$messageArrow = 'Saudações';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Amigo') . "\n";

Diferenças nas restrições:

Capacidade Função anónima Função de seta
Código multilinha Sim Não
Palavra-chave return Sim (obrigatório) Não (implícito)
Palavra-chave use Sim (para importar) Não (automático)
Lógica complexa Sim Não

A escolha entre elas depende da complexidade da tarefa e das preferências de sintaxe. Para ações simples, é mais conveniente usar funções de seta devido à sua concisão.