PHP 8.3 and 8.4 continue the quiet evolution that began with PHP 8.0:
→ a language becoming more intentional, more expressive, and more predictable.
These versions don’t introduce dramatic new paradigms.
Instead, they refine the language’s shape
— smoothing edges, tightening contracts,
and making everyday code more “honest”.
They reflect a broader truth:
→ modern PHP evolves through clarity, not complexity.
PHP 8.3 focuses on consistency, safety, and expressiveness.
Nothing flashy — but everything meaningful.
You can now declare types on class constants:
class Config { public const string MODE = 'production'; }
This brings constants into the same world as properties and parameters:
shape is explicit.
Readonly properties can now be deep‑cloned safely:
$copy = clone $object;
This makes readonly objects feel more like true values.
A fast way to check if a string is valid JSON:
if (json_validate($payload)) { /* ... */ }
No decoding.
No exceptions.
Just validation.
PHP 8.3 tightens type behavior in subtle ways:
These changes make the language feel more predictable.
PHP 8.4 continues the same theme:
→less noise, more clarity.
This is the headline feature of 8.4
— a way to define getters and setters directly on properties:
class User { public string $name { get => $this->name; set => $this->name = trim($value); } }
No boilerplate methods.
No magic.
Just explicit behavior.
This is PHP becoming more expressive without becoming more magical.
You can now mark methods that intentionally override a parent method:
class Child extends Parent { #[\Override] public function handle() { /* ... */ } }
If the parent method doesn’t exist, PHP errors.
This prevents accidental overrides — a common source of bugs.
PHP 8.4 continues refining:
These are small changes,
but they reinforce the language’s direction.
PHP 8.4 includes meaningful performance gains, especially in:
Nothing you need to learn — but everything you benefit from.
PHP 8.3 and 8.4 show a language that is:
The key idea:
→ Modern PHP evolves by making the language more honest.
Every new feature is about reducing ambiguity,
not adding cleverness.
AI often:
Our mental model helps us see when a feature belongs to the language
—and when AI is hallucinating something from another ecosystem.
PHP 8.3 and 8.4 continue the quiet refinement of the language:
These versions don’t change how we think about PHP
—they make the language more aligned with the way we already think.
They teach us that
modern PHP evolves through clarity, stability, and intention.