Какво е PHP Null Coalescing? Какво и как се използва? Ще ги научим в този урок.

Операторът PHP Null Coalescing беше въведен в PHP 7. Операторът PHP Null Coalescing позволява присвояване на данни условно. Ако първият операнд съществува и не е нула, той връща първия операнд, в противен случай връща втория операнд.

Примери за PHP Null Coalescing

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

В пример 1, тъй като нямаше публикувани данни с име name, стойността nobody беше присвоена на променливата $name и тя беше отпечатана. Пример 1 е съкратена версия на примери 1.1 и 1.2 с оператора PHP Null Coalescing. И двете връщат един и същ резултат и носят същото значение.

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

В пример 2, тъй като променливата $first_name има данни, тя върна променливата в първото условие. Въпреки това, тъй като променливата $last_name беше нула, тя върна втория операнд във второто условие и отпечата изречението „Без фамилия“.

PHP Null Coalescing Operator Chaining

Можем да използваме оператора PHP Null Coalescing, като го свържем във верига.

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

В пример 3 PHP присвоява данните $_GET['name'] на променливата $name и ги отпечатва, ако е дефинирано $_GET['name']. Ако не е дефинирана, проверете променливата $_POST'name'], ако $_POST'name'] е дефинирана, тя отхвърля и отпечатва, ако не, отхвърля и отпечатва данните за 'никой'. Пример 3.1 връща същия резултат като пример 3 и има същото значение. Пример 3.1 е по-дълга версия на Пример 3, кодирана с условния оператор if-elseif-else. Пример 3 е кратка версия, кодирана с PHP Null Coalescing.