انتقل إلى محتوى الدرس

Ternary and Null Coalescing Assignment المعامل الثلاثي ?: وإسناد دمج الفارغ ??=

أتقن معاملات المقارنة الصارمة والمرنة، ومعامل السفينة الفضائية، والمعاملات المنطقية، ودمج الفارغ، وجدول أولويات المعاملات في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

استخدم المعامل الثلاثي $cond ? $a : $b للاختيار الشرطي المباشر، ومعامل إلفيس ?: للقيم الحقيقية، ومعامل دمج الفارغ ?? و??= للقيم الافتراضية الآمنة.

  • المعامل الثلاثي المختصر $val ?: "Fallback" يُرجع $val إذا كان صحيحاً منطقياً، أو البديل إذا كان فارغاً أو صفرياً (بما في ذلك 0 و"").
  • معامل دمج الفارغ $val ?? "Fallback" يحتفظ بالقيم 0 و"" وfalse ولا يلجأ للبديل إلا إذا كان المتغير غير معرّف أو null.
  • معامل إسناد الفارغ $theme ??= "dark"; يسند القيمة "dark" فقط إذا كان $theme غير معرّف أو null.

لأن الصفر 0 قيمة خاطئة منطقياً، يستبدله المعامل 0 ?: 10 بالقيمة 10، بينما يحافظ المعامل 0 ?? 10 على الصفر لأنه لا يساوي null.

PHP
<?php
$zeroQty = 0;
$elvisResult = $zeroQty ?: 10;
$coalesceResult = $zeroQty ?? 10;

$timezone = null;
$timezone ??= "Asia/Riyadh";

echo "Elvis on 0: $elvisResult | ?? on 0: $coalesceResult\n";
echo "Timezone: $timezone\n";