PHP 8 позволяет расширить классы атрибутов с помощью битовых флагов путём передачи битовой маски в первом аргументе объявления атрибута. 2
Например, чтобы ограничить объекты, для которых разрешено назначение атрибута, нужно передать битовую маску с целями, доступными для присваивания атрибутов (Attribute::TARGETCLASS, Attribute::TARGETFUNCTION и другие). 2
Также с помощью битовых флагов можно настроить поведение атрибута: по умолчанию его разрешается назначить классу, свойству или другому объекту рефлексии только один раз. 2 Чтобы разрешить назначать одинаковые атрибуты одному объекту рефлексии многократно, нужно объявить атрибут с флагом Attribute::IS_REPEATABLE в битовой маске. 25
Обратите внимание, что все эти флаги проверяются только при вызове метода ReflectionAttribute::newInstance(). 25