Что такое объединение PHP Null? Что и как оно используется? Мы изучим их на этом уроке.

Оператор PHP Null Coalescing был представлен в PHP 7. Оператор PHP Null Coalescing позволяет условно присваивать данные. Если первый операнд существует и не равен нулю, он возвращает первый операнд, в противном случае — второй операнд.

Примеры объединения нулей 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

В примере 1, поскольку не было данных записи с именем name, переменной $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

Мы можем использовать оператор 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.