شرح صفوف ومحتوى الفقرة
تُعرّف التعدادات (enum) المضافة في PHP 8.1 نوع بيانات مغلقاً وصارماً يقتصر على مجموعة محددة من الحالات المسماة (case)، بدلاً من النصوص العشوائية القابلة للخطأ الإملائي.
- عرّف الحالات المسموحة داخل
enumباستخدام الكلمة المفتاحيةcase(مثلcase Pending;). - كل حالة داخل التعداد تمثل كائناً وحيداً (Singleton) من نوع هذا التعداد، لذا تقارن الحالات بالمطابقة الصارمة
===. - تمتلك كل حالة تلقائياً خاصية للقراءة فقط باسم
$case->nameتحتوي على الاسم النصي للحالة.
تحدد الدالة assignSla() نوع المعامل كـ TicketPriority، مما يجعل تمرير أي قيمة غير صالحة مستحيلاً.
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";