Opérateur coalescent null ou Null Coalescing Operator (??)

-

Si jamais vous désirer en savoir plus sur Opérateur coalescent null pour Javascript c’est déjà discuter.

Null Coalescing Operator ?? est une nouvelle fonctionnalité de PHP 7. Il est généralement utilisé pour vérifier si une variable a une valeur. Il sera plus facile pour vous de comprendre si vous avez déjà utilisé l’opérateur ternaire ?? et la fonction isset(). Si la variable n’a pas de valeur, elle renvoie une valeur par défaut.

En terme simple : l’utilisation de ?? en raccourci est : !isset() || is_null()

Exemple

Habituellement, la façon dont nous exécutons le programme !

<?php

$defaultNumber = 25;
$userNumber;
if (isset($userNumber)) {
    echo $userNumber;
}else {
    echo $defaultNumber;
}

// Output => 25

?>

Opérateur coalescent null (Null Coalescing Operator) peur rendre ce programme plus facile pour nous. En utilisant l’opérateur de fusion des nuls, nous pouvons facilement écrire moins de code et exécuter le programme en moins de temps.

<?php

$defaultNumber = 25;

// Null Values and value is not set
$userNumber;

echo $userNumber ?? $defaultNumber;

// Output => 25

?>

Si la valeur est donnée, la fonction sera comme ceci

<?php

$defaultNumber = 25;
$userNumber = 30;

echo $userNumber ?? $defaultNumber;

// Output => 30

?>

Il vérifie donc la valeur, si la valeur est définie, il l’affiche et sinon, il affiche la valeur par défaut.

On peut également faire un chaînage avec l’opérateur ?? (Chaining ?? operation)

<?php

$defaultNumber = 25;
$browserNumber;
$userNumber;

echo $userNumber ?? $browserNumber ?? $defaultNumber;

// Output => 25

?>
<?php

$defaultNumber = 25;
$browserNumber = 20;
$userNumber;

echo $userNumber ?? $browserNumber ?? $defaultNumber;

// Output => 20

?>

Petite note que j’aime bien dire dans mes commentaires de Merge Request (Pull Request). Lorsque vous utilisez l’opérateur de coalescence sur la concaténation de chaînes de caractères, n’oubliez pas d’utiliser les parenthèses ().

<?php

$firstName = "John";
$lastName = "Doe";
echo $firstName ?? "Unknown" . " " . $lastName ?? "";

?>

Cela ne produira que John, et si son $firstName est null et son $lastName est Doe, cela produira Unknown Doe. Pour obtenir le nom de John Doe, nous devons utiliser des parenthèses comme ceci.

<?php

$firstName = "John";
$lastName = "Doe";
echo ($firstName ?? "Unknown") . " " . ($lastName ?? "");

?>

Cela produira John Doe au lieu de John seulement.

Ou une version avec un chaînage

<?php

$firstName = $_GET['firstname'] ?? $_POST['firstname'] ?? 'Unknown';
$lastName = $_GET['lastname'] ?? $_POST['lastname'] ?? '';
echo trim("{$firstName} {$lastName}");

?>

L’opérateur ternaire ?:

  • ?: est comme une porte qui laisse passer tout ce qui est faux – y compris NULL
  • Tout ce qui est faux : 0, chaîne vide (empty string), NULL, false, !isset(), empty()
  • Comme l’ancien opérateur ternaire : X ? Y : Z
  • Note :? : lancera un AVIS PHP sur les variables indéfinies (unset ou !isset()).

Utilisation de ?:

  • vérification de empty(), !isset(), is_null() etc
  • raccourcir l’opération ternaire comme !empty($x) ? $x : $y à $x ?: $y
  • raccourcir if(!$x) { echo $x; } else { echo $y; } à echo $x ?: $y

Exemple simple

<?php

echo 0 ?: 1 ?: 2 ?: 3; //1
echo 1 ?: 0 ?: 3 ?: 2; //1
echo 2 ?: 1 ?: 0 ?: 3; //2
echo 3 ?: 2 ?: 1 ?: 0; //3
    
echo 0 ?: 1 ?: 2 ?: 3; //1
echo 0 ?: 0 ?: 2 ?: 3; //2
echo 0 ?: 0 ?: 0 ?: 3; //3

?>

Voici un exemple plus concret avec les différents types de données

<?php

var_export (false ?? 'value2');   // false
var_export (true  ?? 'value2');   // true
var_export (null  ?? 'value2');   // value2
var_export (''    ?? 'value2');   // ""
var_export (0     ?? 'value2');   // 0

var_export (false ?: 'value2');   // value2
var_export (true  ?: 'value2');   // true
var_export (null  ?: 'value2');   // value2
var_export (''    ?: 'value2');   // value2
var_export (0     ?: 'value2');   // value2

?>

Conclusion

Voilà, amusez-vous avec les opérateurs de PHP et essayés de simplifier vos écritures!

Alfred
Alfredhttps://www.alfreddagenais.com
Salut ! Moi, c'est Alfred, développeur dans l’âme et explorateur de l'infini Web. Je suis constamment à la recherche de nouvelles idées et je pense que le développement web et l'informatique ont le pouvoir de transformer le monde. Je suis un grand admirateur de l'expérimentation, parce que c'est souvent de là que naissent les idées les plus créatives. Je suis convaincu que l'humour est un ingrédient clé de la vie, alors j'essaie toujours de glisser une blague ou deux dans mon code (pas toujours facile à comprendre, mais c'est le risque à prendre). En dehors de la programmation, j'aime passer du temps avec ma famille et mes amis, découvrir de nouveaux endroits et cuisiner des plats délicieux (du moins, j'essaie). Si vous voulez discuter de développement web, d'innovation, ou tout simplement échanger des blagues, n'hésitez pas à me contacter. Je suis toujours partant pour une bonne conversation !

Share this article

Recent posts

Popular categories

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Recent comments