Šta je PHP Null Coalescing? Šta i kako se koristi? Ovo ćemo naučiti u ovoj lekciji.

PHP Null Coalescing operator je uveden u PHP 7. PHP Null Coalescing operator omogućava uslovno dodeljivanje podataka. Ako prvi operand postoji i nije null, vraća prvi operand, u suprotnom vraća drugi operand.

PHP Null Coalescing primjeri

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

U primjeru 1, pošto nije postojao podatak o objavi pod nazivom ime, vrijednost nobody je dodijeljena varijabli $name i ona je ispisana. Primer 1 je skraćena verzija Primera 1.1 i 1.2 sa PHP Null Coalescing operatorom. Oba vraćaju isti rezultat i nose isto značenje.

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

U primjeru 2, pošto varijabla $first_name ima podatke, vratila je varijablu u prvom uslovu. Međutim, pošto je varijabla $last_name bila null, vratila je drugi operand u drugom uslovu i ispisala rečenicu 'Nema prezimena'.

PHP Null Coalescing Operator Chaining

Možemo koristiti PHP Null Coalescing operator tako što ćemo ga povezati.

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

U primjeru 3, PHP dodjeljuje podatke $_GET['name'] varijabli $name i ispisuje ih ako je definiran $_GET['name']. Ako nije definirana, provjerite varijablu $_POST'name'], ako je definirana $_POST'name'], odbacuje i ispisuje, ako nije, odbacuje i ispisuje 'niko' podatke. Primjer 3.1 vraća isti rezultat kao Primjer 3 i ima isto značenje. Primjer 3.1 je duža verzija primjera 3, kodirana uslovnom naredbom if-elseif-else. Primjer 3 je kratka verzija kodirana PHP Null Coalescing.