Хотя перечисления построены на классах и объектах, они не поддерживают полную объектно-связанную функциональность. В качестве примера, вариантам перечислений не разрешены состояния.
Перечислениям доступны следующие функциональные возможности объекта с аналогичным поведением:
TARGET_CLASS включает сами перечисления.
    Целевой фильтр TARGET_CLASS_CONST включает варианты перечислений.
   __CLASS__ и __FUNCTION__ ведут себя как обычно.
   Магическая константа ::class для типа перечисления оценивается как название перечисления,
   включая любое пространство имён, точно так же, как объект.
   Магическая константа ::class в экземпляре варианта также оценивается как тип перечисления,
   поскольку она — экземпляр этого типа.
  
   Кроме того, варианты перечисления нельзя создавать через ключевое слово new или методом
   ReflectionClass::newInstanceWithoutConstructor(). Оба способа приведут к ошибке.
  
<?php
$clovers = new Suit();
// Error: Cannot instantiate enum Suit
$horseshoes = (new ReflectionClass(Suit::class))->newInstanceWithoutConstructor()
// Error: Cannot instantiate enum Suit
?>