A typed class constant declares the type of a constant value and validates compatible overrides.
The examples focus on the operation itself, including the important distinction: readonly properties apply to instance data; typed constants are immutable class-level declarations.
What It Does
Use the examples below to observe the behavior on a small dataset before extending it to application code.
Before You Start
Read the input requirements before applying this pattern to production data.
Example 1: Basic Use
The constant type is enforced by PHP, independently of property visibility. Requires PHP 8.3+.
<?php
class ResponseCodes {
public const int OK = 200;
public const string LABEL = "success";
}
echo ResponseCodes::OK;
Output from a successful local PHP 8.4 run:
200
Example 2: Checking Behavior
The constant type is enforced by PHP, independently of property visibility. Requires PHP 8.3+.
<?php
class ResponseCodes {
public const int OK = 201;
public const string LABEL = "success";
}
echo ResponseCodes::OK;
Output from a successful local PHP 8.4 run:
201
Example 3: Practical Example
The constant type is enforced by PHP, independently of property visibility. Requires PHP 8.3+.
<?php
class ResponseCodes {
public const int OK = 202;
public const string LABEL = "success";
}
echo ResponseCodes::OK;
Output from a successful local PHP 8.4 run:
202
Important Behavior and Edge Cases
Available from PHP 8.3; a constant type declaration is distinct from a property type.
Comparison with Related Approaches
| Approach | Difference |
|---|---|
| PHP Typed Class Constants | A typed class constant declares the type of a constant value and validates compatible overrides. |
| Related API or alternative | readonly properties apply to instance data; typed constants are immutable class-level declarations. |
Common Beginner Mistakes
| Mistake | Correct approach |
|---|---|
| Ignoring the operation-specific limits | Available from PHP 8.3; a constant type declaration is distinct from a property type. |
| Confusing it with a related API | readonly properties apply to instance data; typed constants are immutable class-level declarations. |
Key Takeaways
- A typed class constant declares the type of a constant value and validates compatible overrides.
- Available from PHP 8.3; a constant type declaration is distinct from a property type.
- readonly properties apply to instance data; typed constants are immutable class-level declarations.
Use PHP Typed Class Constants when its documented behavior matches the problem. Test the relevant edge cases in your own runtime before deploying it.