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