Avatar ·

تنفيذ التعدادات (Enum) في PHP: كيف تفعل ذلك بشكل صحيح؟

مرحباً بالجميع! أنا مبتدئ في PHP (أكتب منذ حوالي عام)، وواجهت مشكلة. في المشروع أحتاج إلى تخزين حالات الطلبات: "جديد"، "قيد المعالجة"، "تم الشحن"، "تم التوصيل". حالياً أستخدم الثوابت العادية: ```php define('STATUS_NEW', 1); define('STATUS_PROCESSING', 2); define('STATUS_SHIPPED', 3); define('STATUS_DELIVERED', 4); ``` لكن هذا غير مريح: أولاً، يمكنني عن طريق الخطأ تمرير أي رقم بدلاً من الحالة إلى دالة، ولن يظهر PHP خطأ. ثانياً، إذا احتجت إلى إضافة وصف أو method للحالة (مثلاً "هل يمكن إلغاء الطلب؟")، يجب كتابة دوال منفصلة. ثالثاً، عند عرض قائمة الحالات في قائمة منسدلة في نموذج، أخلط بين المفاتيح والقيم. سمعت أن في PHP 8.1 ظهرت enum أصلية، لكن المشروع يعمل على PHP 7.4، ولا يمكن التحديث حالياً. كيف يمكن تنفيذ التعدادات بشكل صحيح في الإصدارات القديمة من PHP؟ أحتاج شيئاً موثوقاً، مع التحقق من الأنواع وإمكانية إضافة methods. سأكون ممتناً لأمثلة الكود! <<>>

قواعد