O que é coalescência nula de PHP? O que e como é usado? Aprenderemos isso nesta lição.

O operador PHP Null Coalescing foi introduzido no PHP 7. O operador PHP Null Coalescing permite atribuir dados condicionalmente. Se o primeiro operando existir e não for nulo, retorna o primeiro operando, caso contrário retorna o segundo operando.

Exemplos de coalescência nula de PHP

// Ö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

No exemplo 1, como não havia dados de postagem denominados nome, o valor ninguém foi atribuído à variável $nome e foi impresso. O Exemplo 1 é uma versão abreviada dos Exemplos 1.1 e 1.2 com o operador PHP Null Coalescing. Ambos retornam o mesmo resultado e carregam o mesmo significado.

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

No Exemplo 2, como a variável $first_name possui dados, ela retornou a variável na primeira condição. Porém, como a variável $last_name era nula, ela retornou o segundo operando na segunda condição e imprimiu a frase 'Sem Sobrenome'.

Encadeamento de Operador de Coalescência Nulo PHP

Podemos usar o operador PHP Null Coalescing encadeando-o.

// Ö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

No Exemplo 3, o PHP atribui os dados $_GET['name'] à variável $name e os imprime se $_GET['name'] estiver definido. Se não estiver definido, verifique a variável $_POST'name'], se $_POST'name'] estiver definido, ele descarta e imprime, se não, descarta e imprime os dados 'nobody'. O Exemplo 3.1 retorna o mesmo resultado do Exemplo 3 e tem o mesmo significado. O Exemplo 3.1 é uma versão mais longa do Exemplo 3, codificado com a instrução condicional if-elseif-else. O exemplo 3 é uma versão curta codificada com PHP Null Coalescing.