Menu
Coddy logo textTech

Null Coalescing Operator

Fait partie de la section Fondamentaux du Journey PHP de Coddy. Leçon 31 sur 71.

L'opérateur de coalescence nulle (??) offre un moyen pratique d'utiliser une valeur par défaut lorsqu'une variable est null ou n'existe pas. Cela est particulièrement utile pour travailler avec des données qui pourraient être manquantes.

La syntaxe place ?? entre la variable à vérifier et la valeur de repli :

<?php
$username = null;

$displayName = $username ?? "Guest";
echo $displayName; // Guest
?>

PHP vérifie si $username est null. Comme c'est le cas, l'opérateur retourne "Guest" à la place. Si $username avait une valeur, cette valeur serait utilisée.

<?php
$username = "Alice";

$displayName = $username ?? "Guest";
echo $displayName; // Alice
?>

L'opérateur de coalescence nulle fonctionne également lorsqu'une variable n'a pas du tout été définie, sans déclencher d'erreur :

<?php
// $color n'est défini nulle part
$selectedColor = $color ?? "blue";
echo $selectedColor; // bleu
?>

Cela rend ?? plus propre que l'utilisation d'un opérateur ternaire avec des vérifications isset(). C'est parfait pour fournir des valeurs par défaut pertinentes lorsque des données peuvent être manquantes.

challenge icon

Défi

Facile

Lisez deux valeurs à partir de l'entrée : une chaîne nickname et une chaîne theme.

Utilisez l'opérateur de coalescense nulle pour gérer les valeurs potentiellement manquantes :

  1. Créez une variable $userNickname définie sur null. Utilisez ensuite l'opérateur de coalescence nulle pour attribuer à $displayNickname la valeur de $userNickname si elle existe et n'est pas nulle, sinon utilisez la valeur d'entrée nickname.
  2. Créez une variable $userTheme et attribuez-lui la valeur d'entrée theme. Utilisez l'opérateur de coalescence nulle pour attribuer à $selectedTheme la valeur de $userTheme si elle existe et n'est pas nulle, sinon utilisez dark par défaut.
  3. Utilisez directement l'opérateur de coalescence nulle avec une variable non définie $language (ne la définissez pas) pour attribuer à $displayLanguage la valeur de $language si elle existe, sinon utilisez English par défaut.

Affichez chaque résultat sur une nouvelle ligne dans cet ordre : $displayNickname, $selectedTheme, $displayLanguage.

Exemple :

Si les entrées sont Player1 et light, la sortie doit être :

Player1
light
English

Si les entrées sont GuestUser et blue, la sortie doit être :

GuestUser
blue
English

Essayez vous-même

<?php
// Lire l'entrée
$nickname = trim(fgets(STDIN));
$theme = trim(fgets(STDIN));

// TODO: Écrivez votre code ci-dessous
// 1. Créez $userNickname défini à null, puis utilisez ?? pour assigner $displayNickname
// 2. Créez $userTheme avec l'entrée du thème, puis utilisez ?? pour assigner $selectedTheme (par défaut : le texte exact des instructions)
// 3. Utilisez ?? avec $language non défini pour assigner $displayLanguage (par défaut : le texte exact des instructions)

// Affichez les résultats (chacun sur une nouvelle ligne)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur PHP en ligne