What to Expect from PHP 8.5: Upcoming Features and Their Uses

PHP 8.5, scheduled for release on November 20, 2025, continues the evolution of the PHP language with a mix of new features, enhancements, and deprecations aimed at improving developer productivity, runtime performance, and language consistency.

Let’s take a quick look at the most anticipated features in PHP 8.5 and their practical applications.

🔧 1. Static Closures in Constant Expressions
What it is:
You’ll be able to embed static closures (anonymous functions) inside constant expressions, such as class constants or attribute arguments.

Use case:
This allows powerful, reusable logic in metadata, especially for frameworks and libraries relying on attributes or constant configurations.

const TRANSFORM = fn($x) => $x * 2;

📚 2. Improved Fatal Error Stack Traces
What it is:
When ini_set(‘fatal_error_backtrace’, 1) is enabled, full stack traces will now be available even for fatal errors.

Use case:
This is a major boost for debugging in production or CI environments, allowing faster root cause analysis of fatal issues like type errors or uncaught exceptions.

🧹 3. Deprecations and Cleanups
The Directory class constructor will be removed in favor of the dir() helper function.

MHASH constants (like MHASH_MD5, MHASH_SHA1) will be removed as part of crypto library cleanup.

Use case:
These removals encourage developers to use modern and secure APIs, like hash() or hash_hmac().

🧪 4. New Array Helpers: array_first() and array_last()
What it is:
These functions return the first or last element of an array, optionally based on a callback.

array_first($array, fn($item) => $item > 10);
array_last($array, fn($item) => $item < 5);

Use case:
Improves code readability when searching for specific elements at array boundaries—ideal for filtering, pagination, or traversal logic.

📦 5. Internationalization Helpers
What it is:
locale_is_right_to_left() and Locale::isRightToLeft() help determine text direction.

Use case:
Supports multilingual applications where layout direction (RTL vs. LTR) must dynamically adjust based on locale (e.g., Arabic, Hebrew).

🛠 6. New CLI Option: –ini=diff
What it is:
The php –ini=diff command shows the difference between loaded and default php.ini values.

Use case:
Great for debugging configuration mismatches, especially across environments or Docker containers.