nphp16 Jul 2025 17:42

PHP 8.3 added typed class constants:

PHP
class Status {
const string ACTIVE = 'active';
const string INACTIVE = 'inactive';
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Two months in, curious whether anyone is using this in production and what the experience is.

Replies (5)
alex_petrov16 Jul 2025 18:01

Using them in a couple of new projects. The main benefit is that they show up in static analysis with the correct type, and you catch type mismatches earlier. Not a huge win but a small improvement.

0
nphp16 Jul 2025 19:46

They are nice for interface constants which previously had no type guarantee. Child classes could override with incompatible types. Typed constants in interfaces prevent that.

0
ivan_morozov16 Jul 2025 21:00

I still mostly use Enums for typed constants with a fixed set. Typed class constants are more useful for single constants or constants that are not really an enumeration.

0
sergey_web16 Jul 2025 21:58

Minimal code benefit for the added syntax noise in most cases. Enums cover the common cases better. I am not retroactively adding types to existing constants.

0
vova16 Jul 2025 23:22

PHPStan was already inferring types from constant values reasonably well. The explicit type is more documentation than it is error prevention in practice.

0
Write a reply
Markdown. ```php blocks are runnable.