PHP Null Coalescing nədir? Nə və necə istifadə olunur? Bu dərsdə bunları öyrənəcəyik.

PHP Null Coalescing operatoru PHP 7-də təqdim edilmişdir. PHP Null Coalescing operatoru verilənləri şərti olaraq təyin etməyə imkan verir. Əgər birinci operand mövcuddursa və null deyilsə, o, birinci operandı qaytarır, əks halda ikinci operandı qaytarır.

PHP Null Coalescing Nümunələri

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

Nümunə 1-də ad adlı heç bir yazı məlumatı olmadığı üçün heç kim $name dəyişəninə dəyər təyin etmədi və çap edildi. Nümunə 1 PHP Null Coalescing operatoru ilə 1.1 və 1.2 Nümunələrin qısaldılmış versiyasıdır. Hər ikisi eyni nəticəni verir və eyni məna daşıyır.

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

Nümunə 2-də, $first_name dəyişəninin datası olduğundan, o, dəyişəni birinci vəziyyətdə qaytardı. Lakin $last_name dəyişəni null olduğundan o, ikinci şərtdə ikinci operandı qaytardı və 'Soyadı yoxdur' cümləsini çap etdi.

PHP Null Coalescing Operator Chaining

PHP Null Coalescing operatorunu zəncirləməklə istifadə edə bilərik.

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

Misal 3-də PHP $_GET['name'] verilənlərini $name dəyişəninə təyin edir və $_GET['name'] təyin olunarsa onu çap edir. Müəyyən edilməyibsə, $_POST'name'] dəyişənini yoxlayın, əgər $_POST'name'] müəyyən edilibsə, ləğv edir və çap edir, deyilsə, 'heç kim' məlumatını atıb çap edir. Nümunə 3.1 Nümunə 3 ilə eyni nəticəni qaytarır və eyni məna daşıyır. Nümunə 3.1 if-elseif-else şərti ifadəsi ilə kodlanmış Misal 3-ün daha uzun versiyasıdır. Misal 3 PHP Null Coalescing ilə kodlanmış qısa versiyadır.