شرح صفوف ومحتوى الفقرة
التعدادات في PHP كائنات غنية المزايا؛ فيمكنها تطبيق الواجهات (implements)، وتعريف الدوال التي تستخدم $this وتعبير match($this).
- داخل دالة التعداد، تشير الكلمة
$thisإلى حالة التعداد المحددة التي تم استدعاء الدالة عليها. - دمج دوال التعداد مع تعبير
match($this)يجمع العناوين والألوان والصلاحيات في مكان واحد منظم. - لا يمكن للتعدادات احتواء خصائص متغيرة ولا يمكنها الوراثة عبر
extends.
يطبق التعداد Role الواجهة HasBadge ويربط كل حالة بلون الشارة المقابل عبر تعبير match($this).
PHP
<?php
interface HasBadge { public function badgeColor(): string; }
enum Role: string implements HasBadge {
case Admin = "admin";
case Viewer = "viewer";
public function badgeColor(): string {
return match ($this) {
self::Admin => "purple",
self::Viewer => "slate",
};
}
}
echo Role::Admin->value . " badge=" . Role::Admin->badgeColor() . "\n";