Opérateur de coalescence null

Définition, exemples et bonnes pratiques

À retenir

  • Sert à définir une valeur par défaut.
  • S'écrit généralement avec le symbole ??.
  • Rend le code beaucoup plus propre qu'une succession de conditions « si/sinon ».
  • Évite les plantages liés aux valeurs nulles.

L'opérateur de coalescence null est un raccourci d'écriture en programmation qui permet de définir une valeur de secours. Si une variable est vide (vaut null), l'ordinateur utilisera automatiquement la valeur alternative proposée juste après l'opérateur.

Étymologie

Le mot coalescence vient du latin coalescere, qui signifie « s'unir » ou « se fusionner ». En informatique, il illustre la fusion de deux expressions en une seule valeur finale. L'anglicisme original est null coalescing operator.

Exemples d'usage

  • En PHP ou JavaScript : $pseudo = $entree_utilisateur ?? 'Anonyme'; (si l'utilisateur n'a rien saisi, on utilise 'Anonyme').
  • En C# : string name = inputName ?? "Valeur par défaut";

Cas d'usage

On l'utilise principalement pour gérer les données provenant de formulaires, de bases de données ou d'API où certains champs peuvent être absents. Il permet d'éviter les erreurs de type « variable non définie » tout en gardant un code court et lisible.

Bonnes pratiques

Attention à ne pas le confondre avec l'opérateur OU (||). Dans certains langages comme le JavaScript, le || remplace aussi le chiffre 0 ou une chaîne vide, alors que la coalescence null (??) ne s'active que si la donnée est réellement inexistante ou nulle.

Synonymes

opérateur de fusion null null coalescing operator

Conseil

Si vous débutez, essayez de remplacer vos petits blocs if ($var == null) { $x = 'default'; } par cet opérateur. Vous gagnerez immédiatement en clarté et votre code fera plus « professionnel ».

Questions fréquentes

Quelle est la différence avec une condition IF classique ?

C'est purement syntaxique : le résultat est le même, mais la coalescence s'écrit sur une seule ligne au lieu de cinq.

Est-ce que tous les langages l'utilisent ?

La plupart des langages modernes (C#, PHP, JavaScript, Swift, Dart) le proposent, mais les symboles peuvent varier légèrement.