Dica de PHP · publicada em
A closure tradicional exige use para capturar variável do escopo externo e um return explícito. Para callback de uma linha, isso é mais cerimônia do que código.
A arrow function fn() captura o escopo por valor automaticamente e retorna a expressão. Fica muito mais legível em array_map, array_filter e usort, que aparecem o tempo todo ao tratar resultado de WP_Query ou de get_posts.
A limitação é ser de expressão única: não dá para colocar várias instruções. Quando precisar de mais de uma linha, volte para a closure normal — e isso costuma ser sinal de que o trecho merece virar um método com nome.
$ids = array_map(fn($p) => $p->ID, $posts);
$minimo = 100;
$caros = array_filter($produtos, fn($p) => $p->get_price() > $minimo);
usort($posts, fn($a, $b) => strcmp($a->post_title, $b->post_title));
Na prática: fn() para callback de uma expressão. Precisou de duas linhas? Volta pra closure ou extrai um método.