Opérateur de coalescence nulle
Fait partie de la section Fondamentaux du Journey PHP de Coddy. Leçon 31 sur 71.
L’opérateur de coalescence nulle (??) permet d’utiliser facilement une valeur par défaut lorsqu’une variable est null ou n’existe pas. C’est particulièrement utile lorsque tu travailles avec des données qui peuvent être manquantes.
La syntaxe place ?? entre la variable à vérifier et la valeur de remplacement :
<?php
$username = null;
$displayName = $username ?? "Guest";
echo $displayName; // Guest
?>PHP vérifie si $username est null. Comme c’est le cas, l’opérateur renvoie « 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 aussi 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; // blue
?>Cela rend ?? plus lisible que l’utilisation d’un opérateur ternaire avec des vérifications isset(). C’est idéal pour fournir des valeurs par défaut raisonnables lorsque des données peuvent manquer.
Défi
FacileLisez deux valeurs en entrée : une chaîne nickname et une chaîne theme.
Utilisez l’opérateur de coalescence nulle pour gérer les valeurs potentiellement manquantes :
- Créez une variable
$userNicknameà laquelle vous attribueznull. Utilisez ensuite l’opérateur de coalescence nulle pour attribuer à$displayNicknamela valeur de$userNicknamesi elle existe et n’est pas nulle ; sinon, utilisez la valeur d’entréenickname. - Créez une variable
$userThemeet attribuez-lui la valeur d’entréetheme. Utilisez l’opérateur de coalescence nulle pour attribuer à$selectedThemela valeur de$userThemesi elle existe et n’est pas nulle ; sinon, utilisezdarkcomme valeur par défaut. - Utilisez directement l’opérateur de coalescence nulle avec la variable non définie
$language(ne la définissez pas) pour attribuer à$displayLanguagela valeur de$languagesi elle existe ; sinon, utilisezEnglishcomme valeur 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, le résultat devrait être :
Player1
light
EnglishSi les entrées sont GuestUser et blue, le résultat devrait être :
GuestUser
blue
EnglishEssayez 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 avec la valeur null, puis utilisez ?? pour attribuer une valeur à $displayNickname
// 2. Créez $userTheme avec le thème saisi, puis utilisez ?? pour attribuer une valeur à $selectedTheme (valeur par défaut : le texte exact des instructions)
// 3. Utilisez ?? avec $language non défini pour attribuer une valeur à $displayLanguage (valeur par défaut : le texte exact des instructions)
// Afficher les résultats (chacun sur une nouvelle ligne)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>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
4Opérateurs de comparaison et logiques
Opérateurs de comparaisonÉgalité et identitéOpérateurs logiques — Partie 1Opérateurs logiques — Partie 2Récapitulatif — Logique simple2Variables et types de données
NombresChaînes et guillemetsBooléensConventions de nommageRécapitulatif - initialisation des variablesVariables videsConcaténation de chaînesObtenir une saisie utilisateurConvertir vers différents types5Logique conditionnelle
Instruction ifIf - ElseOpérateur ternaireOpérateur de coalescence nulleInstruction switchRécapitulatif - Prendre des décisions3Opérateurs de base
Opérateurs arithmétiquesOpérateur moduloOpérateur d’exponentiationAffectation combinéeIncrémentation/DécrémentationPriorité des opérateursRécapitulatif - Calculs simplesOpérateurs sur les chaînesEntraînez-vous par vous-même : Compilateur PHP en ligne