ما هو PHP Null Coalescing؟ ماذا وكيف يتم استخدامه؟ وسوف نتعلم هذه في هذا الدرس.

تم تقديم مشغل 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 كان فارغًا، فقد أعاد المعامل الثاني في الشرط الثاني وطبع الجملة "No Surname".

PHP تسلسل عامل الدمج الفارغ

يمكننا استخدام عامل تشغيل 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.