PHP 9.0 is scheduled for release in late 2026, and the feature set is nearly finalized. After multiple feature proposals were accepted earlier this year, this is shaping up to be the most significant PHP release since PHP 7.0 transformed the language a decade ago. Here's what you need to know about what's coming.
The most anticipated feature by far is built-in concurrency. PHP has always been synchronous by default—one thing happens at a time, in order. For web applications, this is fine because each request runs independently. But for tasks that involve waiting for external resources like databases or APIs, synchronous execution leaves your CPU idle while PHP waits for responses.
PHP 9.0 introduces modern asynchronous programming patterns directly in the language core. You can now mark functions as asynchronous, allowing them to pause while waiting for external operations without blocking the entire application. Multiple asynchronous operations can run in parallel, completing in the time it would take the slowest single operation.
For I/O-bound applications like most web APIs and database-driven sites, this is transformative. Early benchmarks show significant throughput improvements compared to previous PHP versions, with memory usage similar to other modern languages that have had async capabilities for years.
Another feature that PHP developers have wanted for a long time is property hooks. Traditional PHP objects use public properties for simplicity or private properties with getter and setter methods for encapsulation. The boilerplate of writing dozens of simple getters and setters has been a persistent annoyance.
Property hooks solve this by letting you define custom behavior when properties are read or written while keeping the clean syntax of direct property access. You can validate values before setting them, transform values when reading them, compute values on demand, or trigger side effects when properties change—all while callers use simple property syntax.
This is a massive win for frameworks like Laravel. Eloquent models currently use magic methods for attribute access, which works but has performance costs and can be confusing for developers not familiar with Laravel's conventions. Property hooks would allow the same functionality with native PHP syntax that's faster and more predictable.
Pattern matching is also getting significant improvements. PHP 8.0 introduced the match expression, which was a welcome improvement over switch statements. PHP 9.0 takes this much further with full pattern matching that can destructure arrays, match against object properties, and include guard conditions.
You'll be able to write expressive code that matches against complex conditions in a single readable expression. Instead of nested if statements and type checks, you can describe patterns that should match and what to do when they do. This eliminates entire classes of verbose conditional logic and makes code more declarative and maintainable.
The JIT compiler that was introduced in PHP 8.0 is getting a major overhaul in version 9.0. The original JIT was impressive for CPU-bound code like mathematical calculations but didn't help typical web applications much. The new version focuses on what actually matters for most PHP applications: reducing the time from request to response.
Early benchmarks on real-world Laravel applications show meaningful improvements in average response time, lower memory usage through better optimization of arrays and objects, and faster application bootstrapping due to improved opcode caching. For typical web applications, these improvements will be noticeable without any code changes on your part.
Of course, every major release has breaking changes. PHP 9.0 removes several extensions that have been deprecated for years, requiring that you use modern alternatives. The good news is that most applications won't be affected unless they rely on outdated database extensions that should have been replaced long ago.
The upgrade timeline for Laravel developers is clear. Laravel's next major version, due early next year, will require PHP 9.0. The current Laravel version will continue supporting PHP 8.2 through PHP 9.0 until the end of next year. A minor release later this year will add opt-in support for async features without breaking existing code.
Migration complexity is generally low to moderate for most applications. Most breaking changes affect only niche extensions or edge cases. The new features like property hooks and pattern matching are entirely additive—you can start using them immediately without breaking existing code.
Should you upgrade at launch? If you value stability above all else, wait for the first point release and for your framework to fully support PHP 9.0. But for new projects starting after the release, PHP 9.0 is the obvious choice. The concurrency benefits alone are worth it for any application that makes external API calls or database queries. For existing projects, start planning your migration now so you can upgrade within the first few months after release.
PHP 9.0 represents a maturation of the language. The features coming this year aren't flashy or trendy—they're solid, practical improvements that make PHP more productive for the kinds of applications developers actually build. After years of watching other languages add concurrency and property access features, PHP is finally catching up while maintaining the pragmatic approach that has made it the backbone of the web.