-
Added the #[\NoDiscard] attribute to indicate that a function's return value is important and should be consumed.
-
Added the (void) cast to indicate that not using a value is intentional.
-
Added get_error_handler(), get_exception_handler() functions.
-
Added support for casts in constant expressions.
-
Added the pipe (|>) operator.
-
Added support for `final` with constructor property promotion.
-
Added support for configuring the URI parser for the FTP/FTPS as well as the SSL/TLS stream wrappers as described in https://wiki.php.net/rfc/url_parsing_api#plugability.
-
Added PHP_BUILD_PROVIDER constant.
-
Added PHP_BUILD_DATE constant.
-
Added support for Closures and first class callables in constant expressions.
-
Add support for backtraces for fatal errors.
-
Add clone-with support to the clone() function.
-
Add RFC 3986 and WHATWG URL compliant APIs for URL parsing and manipulation (kocsismate, timwolla)
-
Fixed AST printing for immediately invoked Closure.
-
Properly handle __debugInfo() returning an array reference.
-
Properly handle reference return value from __toString().
-
Improved error message of UnhandledMatchError for zend.exception_string_param_max_len=0.
-
-
Fixed bug
GH-17951 (memory_limit is not always limited by max_memory_limit).
-
Fixed bug
GH-20183 (Stale EG(opline_before_exception) pointer through eval).
-
Fixed bug
GH-20113 (Missing new Foo(...) error in constant expressions).
-
Fixed bug
GH-19844 (Don't bail when closing resources on shutdown).
-
Fixed bug
GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error).
-
Fix OSS-Fuzz #447521098 (Fatal error during sccp shift eval).
-
Fixed bug
GH-20002 (Broken build on *BSD with MSAN).
-
Fixed bug
GH-19352 (Cross-compilation with musl C library).
-
Fixed bug
GH-19765 (object_properties_load() bypasses readonly property checks).
-
Fixed hard_timeout with --enable-zend-max-execution-timers.
-
Fixed bug
GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array).
-
Fixed bug
GH-19823 (register_argc_argv deprecation emitted twice when using OPcache).
-
Fixed bug
GH-19480 (error_log php.ini cannot be unset when open_basedir is configured).
-
Fixed bug
GH-19719 (Allow empty statements before declare(strict_types)).
-
Fixed bug
GH-19934 (CGI with auto_globals_jit=0 causes uouv).
-
Fixed bug
GH-19613 (Stale array iterator pointer).
-
Fixed bug
GH-19679 (zend_ssa_range_widening may fail to converge).
-
Fixed bug
GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0).
-
Fixed bug
GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning).
-
Fixed bug
GH-19476 (pipe operator fails to correctly handle returning by reference).
-
Fixed bug
GH-19081 (Wrong lineno in property error with constructor property promotion).
-
Fixed bug
GH-17959 (Relax missing trait fatal error to error exception).
-
Fixed bug
GH-18033 (NULL-ptr dereference when using register_tick_function in destructor).
-
Fixed bug
GH-18026 (Improve "expecting token" error for ampersand).
-
The report_memleaks INI directive has been deprecated.
-
Fixed OSS-Fuzz #439125710 (Pipe cannot be used in write context).
-
Fixed bug
GH-19548 (Shared memory violation on property inheritance).
-
Fixed bug
GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references).
-
Fixed bug
GH-18373 (Don't substitute self/parent with anonymous class).
-
Fix support for non-userland stream notifiers.
-
Fixed bug
GH-19305 (Operands may be being released during comparison).
-
Fixed bug
GH-19306 (Generator can be resumed while fetching next value from delegated Generator).
-
Fixed bug
GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes).
-
Fix OSS-Fuzz #427814452 (pipe compilation fails with assert).
-
Fixed bug
GH-16665 (\array and \callable should not be usable in class_alias).
-
Use `clock_gettime_nsec_np()` for high resolution timer on macOS if available.
-
Make `clone()` a function.
-
Introduced the TAILCALL VM, enabled by default when compiling with Clang>=19 on x86_64 or aarch64.
-
Enacted the follow-up phase of the "Path to Saner Increment/Decrement operators" RFC, meaning that incrementing non-numeric strings is now deprecated. (Girgias).
-
Various closure binding issues are now deprecated.
-
Constant redeclaration has been deprecated.
-
Marks the stack as non-executable on Haiku.
-
Deriving $_SERVER['argc'] and $_SERVER['argv'] from the query string is now deprecated.
-
Using null as an array offset or when calling array_key_exists() is now deprecated.
-
The disable_classes INI directive has been removed.
-
The locally predefined variable $http_response_header is deprecated.
-
Non-canonical cast names (boolean), (integer), (double), and (binary) have been deprecated.
-
The $exclude_disabled parameter of the get_defined_functions() function has been deprecated, as it no longer has any effect since PHP 8.0.
-
Terminating case statements with a semicolon instead of a colon has been deprecated.
-
The backtick operator as an alias for shell_exec() has been deprecated.
-
Returning null from __debugInfo() has been deprecated.
-
Support #[\Override] on properties.
-
Destructing non-array values (other than NULL) using [] or list() now emits a warning.
-
Casting floats that are not representable as ints now emits a warning.
-
Casting NAN to other types now emits a warning.
-
Implement
GH-15680 (Enhance zend_dump_op_array to properly represent non-printable characters in string literals).
-
Fixed bug
GH-17442 (Engine UAF with reference assign and dtor).
-
Do not use RTLD_DEEPBIND if dlmopen is available.
-
Added #[\DelayedTargetValidation] attribute.
-
Support #[\Deprecated] on traits.