PHP Keeps Getting Better

PHP 8.4 continues the language's impressive modernization streak. Each release brings features that make code more expressive, safer, and more maintainable. Here are the 10 features that deserve your attention.

1. Property Hooks

Property hooks let you define get and set behaviors directly on properties, eliminating the need for boilerplate getter and setter methods. This is perhaps the most transformative feature in PHP 8.4.

2. Asymmetric Visibility

You can now declare different visibility levels for reading and writing a property. For example, a property can be publicly readable but only privately settable. This pattern was previously only achievable through methods.

3. New Array Functions

PHP 8.4 adds array_find(), array_find_key(), array_any(), and array_all(). These are functional programming staples that reduce the need for manual loops.

4. Lazy Objects

The new lazy object API allows you to create objects whose initialization is deferred until they are actually accessed. This is powerful for dependency injection containers and ORMs.

5. HTML5 Parser

The new Dom\HTMLDocument class provides a spec-compliant HTML5 parser, replacing the legacy DOM extension for HTML parsing tasks.

6. Multibyte String Improvements

Functions like mb_trim(), mb_ltrim(), and mb_rtrim() finally bring proper multibyte support to string trimming operations.

7. Improved Type System

The type system continues to mature with better support for generic-like patterns and more precise type inference in static analysis tools.

8. Enhanced Enums

Enums gain new capabilities that make them even more powerful for modeling domain concepts and replacing magic strings throughout your codebase.

9. Performance Improvements

Under the hood, PHP 8.4 includes JIT compiler improvements and memory usage optimizations that benefit all PHP applications, even without code changes.

10. Deprecated Features Cleanup

PHP 8.4 removes several long-deprecated features, cleaning up the language surface area. Review the deprecation list before upgrading to ensure your code is compatible.

The best time to upgrade was yesterday. The second best time is today. PHP 8.4 rewards early adopters with cleaner code and better performance.

Each of these features contributes to making PHP a more modern, expressive language. The ecosystem continues to thrive, and these improvements ensure PHP remains a compelling choice for web development.