php8.5
Home/ Manual/ predefined / attributes/ The Attribute attribute

The Attribute attribute

Attributes offer the ability to add structured, machine-readable metadata information on declarations in code: Classes, methods, functions, parameters, properties and class constants can be the target of an attribute. The metadata defined by attributes can then be inspected at runtime using the Reflection APIs. Attributes could therefore be thought of as a configuration language embedded directly into code.

Intro

Attributes offer the ability to add structured, machine-readable metadata information on declarations in code: Classes, methods, functions, parameters, properties and class constants can be the target of an attribute. The metadata defined by attributes can then be inspected at runtime using the Reflection APIs. Attributes could therefore be thought of as a configuration language embedded directly into code.

Class synopsis

#[\Attribute(\Attribute::TARGET_CLASS)] Attribute { }

Predefined Constants

Attribute::TARGET_CLASS
Attribute::TARGET_FUNCTION
Attribute::TARGET_METHOD
Attribute::TARGET_PROPERTY
Attribute::TARGET_CLASS_CONSTANT
Attribute::TARGET_PARAMETER
Attribute::TARGET_CONSTANT
Attribute::TARGET_ALL
Attribute::IS_REPEATABLE

Properties

flags

Changelog

VersionDescription
8.5.0Added Attribute::TARGET_CONSTANT. Applying #[\Attribute] to an abstract class, enum, interface, or trait now triggers a compile-time error (previously it was only reported at runtime when ReflectionAttribute::newInstance was called).

See Also

Attributes overview

Construct

Source: language/predefined/attributes/attribute.xml · from the official PHP manual (php/doc-en)