Software 43918 Published by

Volker Dusch has announced the third beta version of PHP 8.5.0, which includes a range of bug fixes and improvements across various components. The release addresses over 20 issues, including problems with opcache, PDO, Intl, and URI handling, as well as several deprecation notices for features like $_SERVER['argc'] and $_SERVER['argv']. Additionally, the release introduces new support for retrieving Exif data from HEIF files and adds several new functions to the Intl module.



PHP 8.5.0 Beta 3 released

Volker Dusch has announced the third beta version of PHP 8.5.0, which includes numerous bug fixes and improvements across various components.

Screenshot_from_2025_05_20_10_30_02

Core Changes
  • Destructing non-array values: Using destructuring syntax ([] or list()) on non-array values other than NULL now emits a warning.
  • Closure scope fix: The bug GH-19637 has been fixed, which affected the closure scope in constant expressions.
  • Stale array iterator pointer fix: The issue GH-19613 has been resolved, which caused stale array iterators to point to incorrect positions.
  • Zend SSA range widening fix: The problem GH-19679 has been addressed, where Zend SSA range widening may fail to converge.
  • Null as an array offset deprecation: Using NULL as an array offset or when calling array_key_exists() is now deprecated.
  • PHP_EXPAND_PATH fix on bash 5.3.0: The issue GH-19681 has been fixed, which caused PHP_EXPAND_PATH to break with bash 5.3.0.
  • Stack non-executable mark on Haiku: The stack is now marked as non-executable on Haiku platforms.
  • S​ERVER[′argc′] and_SERVER['argv'] deprecation: Deriving $_SERVER['argc'] and $_SERVER['argv'] from the query string is now deprecated.
CLI Changes
  • Improved error message for listening errors with IPv6 addresses: The bug GH-19461 has been fixed, which provided an improved error message for listening errors on IPv6 addresses.
Date Changes
  • date_sunrise() and date_sunset() fix for partial-hour UTC offset: The issue GH-19610 has been resolved, where date_sunrise() and date_sunset() did not handle partial-hour UTC offsets correctly.
EXIF Changes
  • Support for retrieving Exif data from HEIF files: Support has been added to retrieve Exif data from HEIF files.
FPM Changes
  • Fix for failed debug assertion when php_admin_value setting fails: The issue GH-19681 has been addressed, where a failed debug assertion occurred when the php_admin_value setting failed.
Filter Changes
  • filter_var_array fix for invalid filter usage: The bug GH-16993 has been fixed, which caused incorrect behavior when using FILTER_VALIDATE_INT|FILTER_NULL_ON_FAILURE with filter_var_array.
Intl Changes
  • grapheme functions with locale parameter: New grapheme functions (grapheme_strpos, grapheme_stripos, etc.) have been added and now include a $locale parameter.
  • Fix for locale strings canonicalization in IntlDateFormatter and NumberFormatter: The issue GH-11952 has been resolved, which affected the canonicalization of locale strings in IntlDateFormatter and NumberFormatter.
ODBC Changes
  • Removal of driver-specific build flags and support: Support for driver-specific build flags has been removed.
Opcache Changes
  • Fix for incorrect opline after deoptimization: The issue GH-19486 has been fixed, where the opline was incorrect after deoptimization.
  • Fix for JIT stack setup on aarch64/clang: The problem GH-19601 has been addressed, which affected the JIT stack setup on aarch64/clang platforms.
  • Fix for broken opcache.huge_code_pages: The bug GH-19388 has been fixed, where opcache.huge_code_pages was not working correctly.
  • Build fix on non-glibc/musl/freebsd/macos/win platforms: The issue GH-19657 has been resolved, which caused the build process to fail on certain platforms.
PCRE Changes
  • Upgrade to pcre2lib 10.46: The version of pcre2lib has been upgraded from 10.45 to 10.46.
PDO Changes
  • Driver-specific methods in the PDO class are now deprecated: Driver-specific methods in the PDO class are now deprecated.
PDO_SQLITE Changes
  • Add PDO\Sqlite::ATTR_TRANSACTION_MODE connection attribute: Support has been added for the PDO\Sqlite::ATTR_TRANSACTION_MODE connection attribute.
Reflection Changes
  • Fix for getModifierNames() not reporting asymmetric visibility: The issue GH-19691 has been fixed, where getModifierNames() did not report asymmetric visibility correctly.
Session Changes
  • Fix for RC violation of session SID constant deprecation attribute: The issue with the SID constant in the session module has been addressed.
Standard Changes
  • Fix for deprecation warnings in functions taking argument: The problem GH-19610 has been resolved, where deprecation warnings were being emitted unnecessarily.
  • Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator: The issue GH-19577 has been fixed, which caused an integer overflow when using a small offset and PHP_INT_MAX with LimitIterator.
  • Implement support for new INI mail.cr_lf_mode: Support has been added for the new INI option mail.cr_lf_mode.
Streams Changes
  • Fix for heap corruption when closing a userspace stream inside a userspace handler: The issue GH-14506 has been fixed, which caused heap corruption when closing a userspace stream inside a userspace handler.
  • Avoid double conversion to string in php_userstreamop_readdir(): The problem with double conversion to string in php_userstreamop_readdir() has been addressed.
URI Changes

  • Add support for Uri\Rfc3986\Uri::with() methods*: Support has been added for the Uri\Rfc3986\Uri::with*() methods.
  • Fix memory management of Uri\WhatWg\Url objects: The issue with memory management of Uri\WhatWg\Url objects has been resolved.
  • Fix memory management of internal "parse_url" URI parser: The problem with memory management of the internal "parse_url" URI parser has been addressed.
  • Fix double-free when assigning to errorsfailswithUri\WhatWg\Urlparser:Theissuewithadouble−freeoccurringwhenassigningto‘errorsfailswithUri\WhatWg\Urlparser:Theissuewithadouble−freeoccurringwhenassigningto‘errorsfailed with theUri\WhatWg\Url` parser has been fixed.
  • Reject out-of-range ports when using the Uri\Rfc3986\Uri parser: The problem with out-of-range ports being accepted by the Uri\Rfc3986\Uri parser has been resolved.
  • Return null instead of 0 for Uri\Rfc3986\Uri::getPort(): The issue where an empty port returned 0 in the Uri\Rfc3986\Uri::getPort() method has been fixed.
  • Fix creation of InvalidUrlException when not passing errors zval to internal whatwg parser: The problem with creating an InvalidUrlException when not passing an errors zval to the internal whatwg parser has been addressed.
  • Clean up naming of internal API: The naming of the internal API for URI handling has been cleaned up.

For the download link, visit the PHP 8.5.0 Beta 3 release page on GitHub below:

php-8.5.0beta3

Tag for php-8.5.0beta3

Release php-8.5.0beta3 · php/php-src