# Type nullable

> Déclaration de type précédée d'un point d'interrogation qui autorise explicitement la valeur « null » en plus du type indiqué.

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

Déclarer qu'un paramètre est de type `string` interdit normalement de lui passer `null`. Or il arrive légitimement qu'une valeur soit absente — un utilisateur sans avatar, un article sans image mise en avant. Le type nullable sert précisément à documenter ce cas : « une chaîne, ou rien du tout », plutôt que de devoir élargir le type ou renoncer au typage.

## Syntaxe en PHP

On le note en préfixant le type d'un point d'interrogation : `function trouverAuteur(?int $id): ?WP_User` accepte un identifiant absent et peut renvoyer aucun utilisateur trouvé. Depuis PHP 8.1, l'union de types `int|null` est une écriture équivalente, plus explicite dans certains cas complexes.

## Dans WordPress

De nombreuses fonctions du cœur renvoient `null` ou `false` en cas d'échec, par exemple `get_page_by_path()` qui renvoie `null` si aucune page ne correspond. Documenter une fonction personnalisée avec un type de retour nullable évite d'appeler une méthode sur un résultat qui pourrait ne pas exister, une source fréquente d'erreurs fatales.

## Exemple

```
function recupererReglage(string $cle): ?string {
    $valeur = get_option($cle);
    return $valeur !== false ? (string) $valeur : null;
}

$langue = recupererReglage('wpm_langue') ?? 'fr';
```

## Pièges fréquents

Un type nullable ne dispense pas de vérifier la valeur avant de l'utiliser : appeler une méthode directement sur un résultat potentiellement `null` provoque toujours une erreur fatale. Notez aussi qu'un paramètre dont la valeur par défaut est `null` devient implicitement nullable en PHP, même sans point d'interrogation, ce qui surprend parfois à la lecture.
