Pas besoin de baptiser une fonction qu’on n’utilisera qu’une seule fois, à un seul endroit précis du code : la fonction anonyme, appelée aussi closure en PHP, répond exactement à ce besoin ponctuel.
Un usage massif dans les hooks WordPress
Attacher une fonction anonyme directement à add_action ou add_filter évite de créer une fonction nommée séparée pour un traitement simple et localisé, une pratique très répandue dans les fichiers functions.php de thèmes modernes.
Exemple
add_filter('excerpt_length', function ($longueur) {
return 20;
});
add_action('wp_footer', function () {
echo '<p class="mention-legale">Site propulsé par WordPress</p>';
});
Chaque fonction anonyme reste isolée à son usage précis, sans polluer l’espace global de noms de fonctions du thème.
À ne pas confondre avec une fonction fléchée
- PHP propose depuis la version 7.4 les fonctions fléchées (
fn($x) => $x * 2), plus concises mais qui capturent automatiquement les variables extérieures par valeur, contrairement à une closure classique qui nécessite le mot-cléuse. - Le mot-clé
use ($variable)permet à une fonction anonyme classique d’accéder à une variable définie en dehors de son propre corps, par valeur ou par référence avecuse (&$variable). - Une fonction anonyme reste une valeur comme une autre : elle peut être stockée dans un tableau, passée en paramètre ou retournée par une autre fonction.