# Fonction variadique

> Une fonction variadique accepte un nombre indéterminé d'arguments grâce à l'opérateur « ... », qui les regroupe automatiquement dans un tableau.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/fonction-variadique/

Certaines fonctions doivent accepter un nombre d'arguments qu'on ne connaît pas à l'avance : une fonction de journalisation qui prend tantôt un message seul, tantôt un message accompagné de plusieurs valeurs de contexte. Depuis PHP 5.6, l'opérateur `...` placé devant un paramètre capture tous les arguments restants dans un tableau, sans passer par l'ancienne fonction `func_get_args()`.

## Écriture et usage

Le paramètre variadique doit être le dernier de la liste et peut être typé : `function additionner(int ...$nombres) { return array_sum($nombres); }`. Le même opérateur sert aussi à « déplier » un tableau existant en arguments au moment de l'appel : `additionner(...[1, 2, 3])`.

## Dans WordPress

Le cœur de WordPress s'en sert peu directement, mais des fonctions comme `sprintf()` ou `call_user_func_array()` reposent sur le même principe de nombre variable d'arguments. Dans une extension, une fonction variadique est pratique pour construire un wrapper autour de `error_log()`, ou pour composer une requête `$wpdb` avec un nombre inconnu de conditions.

## Exemple

```
function wpm_log(string $niveau, string ...$messages) {
    foreach ($messages as $m) {
        error_log("[$niveau] $m");
    }
}
wpm_log('INFO', 'Cache vidé', 'Options mises à jour');
```

## Pièges fréquents

Un paramètre variadique ne peut pas être suivi d'un autre paramètre positionnel : PHP lève une erreur de syntaxe dans ce cas. Ne confondez pas non plus cet usage avec l'opérateur de déballage appliqué à un tableau : la syntaxe `...` est la même mais son rôle change selon qu'elle apparaît dans la déclaration ou dans l'appel.
