Qu’est-ce que la fusion nulle PHP ? A quoi et comment est-il utilisé ? Nous les apprendrons dans cette leçon.

L'opérateur PHP Null Coalescing a été introduit dans PHP 7. L'opérateur PHP Null Coalescing permet d'attribuer des données de manière conditionnelle. Si le premier opérande existe et n'est pas nul, il renvoie le premier opérande, sinon il renvoie le deuxième opérande.

Exemples de fusion PHP nulle

// Örnek 1: 
echo $name = $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 1.1
if (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody
// Örnek 1.2
echo $name = isset($_POST['name']) ? $_POST['name'] : 'nobody';
// Çıktı: nobody

Dans l'exemple 1, comme il n'y avait pas de données de publication nommées name, la valeur "personne" a été attribuée à la variable $name et elle a été imprimée. L'exemple 1 est une version abrégée des exemples 1.1 et 1.2 avec l'opérateur PHP Null Coalescing. Les deux renvoient le même résultat et ont la même signification.

// Örnek 2
$first_name = 'Onur';
$last_name = null;
echo ($first_name ?? 'Ad Yok') . ' ' . ($last_name ?? 'Soyad Yok');?> 
// Çıktı: Onur Soyad Yok

Dans l'exemple 2, puisque la variable $first_name contient des données, elle a renvoyé la variable dans la première condition. Cependant, comme la variable $last_name était nulle, elle renvoyait le deuxième opérande dans la deuxième condition et imprimait la phrase « No Surname ».

Chaînage d’opérateurs de coalescence nul PHP

Nous pouvons utiliser l'opérateur PHP Null Coalescing en le chaînant.

// Örnek 3
echo $name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 3.1
if (isset($_GET['name'])) {
    echo $name = $_GET['name'];
} elseif (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody

Dans l'exemple 3, PHP attribue les données $_GET['name'] à la variable $name et les imprime si $_GET['name'] est défini. Si elle n'est pas définie, vérifiez la variable $_POST'name'], si $_POST'name'] est définie, elle supprime et imprime, sinon, elle supprime et imprime les données 'personne'. L'exemple 3.1 renvoie le même résultat que l'exemple 3 et a la même signification. L'exemple 3.1 est une version plus longue de l'exemple 3, codée avec l'instruction conditionnelle if-elseif-else. L'exemple 3 est une version courte codée avec PHP Null Coalescing.