PHP Opérateur de coalescence nul (??)


Exemple

La coalescence nulle est un nouvel opérateur introduit dans PHP 7. Cet opérateur retourne son premier opérande s'il est défini et non NULL . Sinon, il retournera son deuxième opérande.

L'exemple suivant:

$name = $_POST['name'] ?? 'nobody';

est équivalent aux deux:

if (isset($_POST['name'])) {
    $name = $_POST['name'];
} else {
    $name = 'nobody';
}

et:

$name = isset($_POST['name']) ? $_POST['name'] : 'nobody'; 

Cet opérateur peut également être chaîné (avec une sémantique associative à droite):

$name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';

qui est équivalent à:

if (isset($_GET['name'])) {
    $name = $_GET['name'];
} elseif (isset($_POST['name'])) {
    $name = $_POST['name'];
} else {
    $name = 'nobody';
}

Remarque:
Lors de l'utilisation d'un opérateur de coalescence sur une concaténation de chaîne, n'oubliez pas d'utiliser des parenthèses ()

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

Cela ne produira que John , et si son $ firstName est null et que $ lastName est Doe il affichera Unknown Doe . Pour sortir John Doe , nous devons utiliser des parenthèses comme ceci.

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

Cela affichera John Doe au lieu de John uniquement.