Arrow functions foram introduzidos a partir do PHP 7.4 e são uma maneira de escrever funções mais curtas em PHP. Essa notação é útil ao passar fechamentos para funções como array_map
ou array_filter
.
A sintaxe da arrow functions
é: fn (argument_list) => expr.
Antes das arrow functions
funções como map
, filter
, reduce
e muitas outras que recebem uma função como parâmetro, tinham que ser descritas da seguinte maneira:
function cubo($item) {
return $item ** 3;
}
$lista = [1, 2, 3];
$resultado = array_map('cubo', $lista);
print_r($resultado);
Agora, com a nova sintaxe, o código pode ser escrito da seguinte maneira:
$lista = [1, 2, 3];
$resultado = array_map(fn ($item) => $item ** 3, $lista);
print_r($resultado);
Bem mais "limpo", não é mesmo?
Vamos as principais vantagens:
- O código é mais legível.
- Menos linhas de código.
- A
arrow function
captura as variáveis externas sem defini-la explicitamente usando a palavra-chaveuse
.