Published
- 1 min read
New in PHP 8.5: Attributes on Constants

PHP 8.5 introduces support for attributes on non-class constants. This article walks you through everything you need to know about this new feature!
This change is quite straightforward, so this won’t be a long article. PHP 8.5 adds support for annotating non-class, compile-time constants with attributes. Compile-time constants are those defined using the const
keyword, not the define()
function.
Attributes can now include Attribute::TARGET_CONSTANT
among their valid targets. Additionally, as the name suggests, Attribute::TARGET_ALL
now includes constants as well. The ReflectionConstant
class has been updated with a new method, getAttributes()
, to support retrieving these annotations.
One particularly useful aspect of this change is that the built-in #[Deprecated]
attribute can now be applied to compile-time constants.
As promised, this was a short post, since the change is relatively simple. See you next time—hopefully with a more exciting new feature in PHP 8.5!