PHP 8.6 Beta 1 ships Thursday, August 13, and marks the soft feature freeze. Any RFC that hadn’t finished voting by now missed the beta.

Here is what the freeze locks in:

  • Partial function application, which creates a closure with some arguments prefilled using a ? placeholder
  • A polling API in the Io\Poll namespace that can use epoll or WSAPoll instead of stream_select()
  • The Time\Duration class for representing durations and doing math on them
  • Readonly property defaults, which property hooks made useful on interfaces
  • Closure optimizations, inferring static and caching closures the engine can prove are identical
  • clamp(), which keeps a value inside a range
  • Secure session defaults, with session.use_strict_mode and session.cookie_httponly now 1 and session.cookie_samesite now Lax
  • #[\Override] on class constants and enum cases, __debugInfo() on enums, a built-in SortDirection enum, and doc comments on function parameters

What the Soft Freeze Actually Means

Beta 1 is the deadline for RFCs, not the end of every change. The hard feature freeze lands on September 22, and after that date the release managers have to approve anything new. The three betas between now and then exist to shake bugs out of what already merged.

If you maintain an extension or a tool that tracks php-src, you can start testing against now, and the next six weeks are the window to report anything that breaks before RC 1.

The Deprecations

The deprecations RFC ran 35 separate ballots and closed on August 10, so its results come in Beta 1. Those become the notices you see the first time you point an existing app at 8.6, including is_double(), is_integer(), is_long(), doubleval(), spl_object_hash(), spl_classes(), strcoll(), metaphone(), returning a value from __construct() or __destruct(), and a set of newly reserved identifiers. We covered which ballots passed the day the vote closed.

None of them break code in 8.6. They simply raise deprecation warnings.

What Missed the Cutoff

Three proposals fell away in the last two weeks of the window:

One proposal made it in right at the end. Voters accepted object property writes on objects referenced by constants 17 to 2 with six abstaining.

The Rest of the Schedule

Date Release
Aug 13, 2026 Beta 1, soft feature freeze
Aug 27, 2026 Beta 2
Sep 10, 2026 Beta 3
Sep 22, 2026 Hard feature freeze
Sep 24, 2026 RC 1
Oct 8, 2026 RC 2
Oct 22, 2026 RC 3
Nov 5, 2026 RC 4
Nov 19, 2026 GA

The release managers note that individual releases can be added or dropped as development goes, but Nov 19 will remain the date of the official 8.6 release.

Trying It Out

Beta builds are found on the pre-release builds page. If you maintain packages or applications, now is a good time to run your test suite against PHP 8.6.

References

Everything we've written on the release is under the PHP 8.6 tag, and happy testing!