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

Declaring Pure Enums in PHP 8 تعريف التعدادات الصرفة Pure Enums

ابنِ نماذج بيانات قوية في PHP 8.4 باستخدام التعدادات Enums والأصناف للقراءة فقط readonly وخطافات الخصائص الحديثة.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

تُعرّف التعدادات (enum) المضافة في PHP 8.1 نوع بيانات مغلقاً وصارماً يقتصر على مجموعة محددة من الحالات المسماة (case)، بدلاً من النصوص العشوائية القابلة للخطأ الإملائي.

  • عرّف الحالات المسموحة داخل enum باستخدام الكلمة المفتاحية case (مثل case Pending;).
  • كل حالة داخل التعداد تمثل كائناً وحيداً (Singleton) من نوع هذا التعداد، لذا تقارن الحالات بالمطابقة الصارمة ===.
  • تمتلك كل حالة تلقائياً خاصية للقراءة فقط باسم $case->name تحتوي على الاسم النصي للحالة.

تحدد الدالة assignSla() نوع المعامل كـ TicketPriority، مما يجعل تمرير أي قيمة غير صالحة مستحيلاً.

مخطط توضيحي: محاكي التعدادات Enums والأصناف للقراءة فقط وخطافات الخصائص في PHP 8.4
PHP
<?php
enum TicketPriority {
    case Low;
    case Medium;
    case Critical;
}
function assignSla(TicketPriority $p): string {
    return $p === TicketPriority::Critical ? "1 Hour SLA" : "24 Hour SLA";
}
$current = TicketPriority::Critical;
echo $current->name . " -> " . assignSla($current) . "\n";