PHP 8.6 has reached the release candidate stage. RC2 landed on September 23, the feature set is frozen, and the stable release is expected in late November 2026, following PHP’s usual cadence. Release candidates are for testing, not production, which makes right now the best time to find out what breaks.
Partial function application
The headline feature lets you call a function with a ? placeholder for arguments you don’t have yet. Instead of running, the call returns a Closure that waits for the missing values. It’s a cleaner way to build callbacks without wrapping everything in fn() => ….
// PHP 8.6: a placeholder returns a Closure
$toSlug = str_replace(' ', '-', ?);
$slugs = array_map($toSlug, $titles);It pairs nicely with the pipe operator that arrived in PHP 8.5, which passes a value through a chain of callables from left to right.
clamp()
A small but welcome addition: clamp() limits a value to an inclusive minimum and maximum. If you pass a minimum that’s larger than the maximum, it throws a ValueError instead of guessing.
// Keep a requested quantity between 1 and what's in stock
$qty = clamp($requested, 1, $stock);What to test on WordPress sites
- Run your theme, plugins and WooCommerce extensions against the RC on a staging copy, not production.
- Turn on WP_DEBUG_LOG and read the deprecation notices. New deprecations are where most upgrade pain comes from.
- Ask your host when PHP 8.6 will be offered and whether they’ll move sites automatically.
- Pay extra attention to custom integrations and payment or shipping plugins, since they tend to rely on older libraries.
WordPress 7.0 still supports PHP 7.4 and up, so only use 8.6 syntax in code you control and deploy to servers you know are running it. Public plugins need to wait.
Like every PHP release, most sites will upgrade without drama. The ones that don’t are usually carrying old custom code nobody has looked at in years. A one-afternoon staging test now is a lot cheaper than a broken checkout in December.

