Mi az a PHP Null Coalescing? Mire és hogyan használják? Ezeket tanuljuk meg ebben a leckében.

A PHP Null Coalescing operátort a PHP 7-ben vezették be. A PHP Null Coalescing operátor lehetővé teszi az adatok feltételes hozzárendelését. Ha az első operandus létezik, és nem nulla, akkor az első operandust adja vissza, ellenkező esetben a második operandust.

PHP Null Coalescing Példák

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

Az 1. példában, mivel nem volt name nevű bejegyzési adat, a $name változóhoz a nobody értéket rendeltük, és ki lett nyomtatva. Az 1. példa az 1.1 és 1.2 példák rövidített változata a PHP Null Coalescing operátorával. Mindkettő ugyanazt az eredményt adja vissza, és ugyanazt a jelentést hordozza.

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

A 2. példában, mivel a $first_name változóban vannak adatok, az első feltételben lévő változót adta vissza. Mivel azonban a $last_name változó nulla volt, visszaadta a második operandust a második feltételben, és kiírta a „Nincs vezetéknév” mondatot.

PHP Null Coalescing Operator Chaining

A PHP Null Coalescing operátorát láncolással használhatjuk.

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

A 3. példában a PHP hozzárendeli a $_GET['name'] adatot a $name változóhoz, és kiírja, ha a $_GET['név'] meg van adva. Ha nincs definiálva, ellenőrizze a $_POST'name'] változót, ha a $_POST'name'] meg van adva, eldobja és kiírja, ha nincs, akkor elveti és kiírja a 'nobody' adatokat. A 3.1. példa ugyanazt az eredményt adja vissza, mint a 3. példa, és ugyanaz a jelentése. A 3.1. példa a 3. példa hosszabb változata, az if-elseif-else feltételes utasítással kódolva. A 3. példa egy PHP Null Coalescing kóddal kódolt rövid verzió.