Пример для перечисления (Enum)
class Role extends SplEnum { const __default = 1; const ADMIN = 0; const USER = 1; } class User { ... protected $role = Role::USER; public function setRole(Role $role) { $this->role = (int) $role; } public function getRole() { return $this->role; } ... } $user = new User(); $role = new Role(Role::ADMIN); $user->setRole($role); var_dump($user->getRole()); // int(0) $role = new Role(5); // PHP Fatal error: Uncaught exception // 'UnexpectedValueException' // with message 'Value not a const in enum Role' in ...