Using -a without the readline extension will now result in an error.
Previously, -a without readline had the same behavior as
calling php without any arguments, apart from printing an additional
"Interactive mode enabled"
message.
This mode was not interactive.
Remote functionality from phpdbg has been removed.
The order of properties used in foreach
, var_dump(),
serialize(), object comparison, etc. was changed.
Properties are now ordered naturally according to their declaration
and inheritance. Properties declared in a base class are going
to be before the child properties.
This order is consistent with internal layout of properties in
zend_object
structure and repeats the order in
default_properties_table[]
and properties_info_table[]
.
The old order was not documented and was caused by class inheritance implementation details.
The FILTER_FLAG_ALLOW_OCTAL
flag of the
FILTER_VALIDATE_INT
filter
now accept octal string with the leading octal prefix
("0o"
/"0O"
).
All GMP functions now accept octal string with the leading octal prefix
("0o"
/"0O"
).
PDO::getAttribute() with
PDO::ATTR_SERVER_INFO
and
PDO::ATTR_SERVER_VERSION
now return values instead of throwing PDOException.
ReflectionProperty::setAccessible() and ReflectionMethod::setAccessible() no longer have an effect. Properties and methods are now always considered accessible via Reflection.
syslog() is now binary safe.
imagewebp() can now do lossless WebP encoding
by passing IMG_WEBP_LOSSLESS
as the quality.
This constant is only defined, if the used libgd supports lossless WebP encoding.
mysqli_stmt::next_result() and mysqli::fetch_all() are now available when linking against libmysqlclient.
The OpenSSL extension now requires at least OpenSSL version 1.0.2.
OpenSSL 3.0 is now supported. Be aware that many ciphers are no longer enabled by default (part of the legacy provider), and that parameter validation (e.g. minimum key sizes) is stricter now.
SHA256 is now used by default for signatures.
Added support for OpenSSL_SHA256 and OpenSSL_SHA512 signatures.
Added support for SHA256 and SHA512 for the security protocol.
--with-password-argon2
now uses pkg-config to detect libargon2.
As such, an alternative libargon2 location should now be specified using
PKG_CONFIG_PATH.
The log_errors_max_len INI directive has been removed. It no longer had an effect since PHP 8.0.0.
A leading dollar in a quoted string can now be escaped: "\${"
will now be
interpreted as a string with contents ${
.
Backslashes in double quoted strings are now more consistently treated as
escape characters. Previously, "foo\\"
followed by
something other than a newline was not considered as a terminated string.
It is now interpreted as a string with contents foo\
.
However, as an exception, the string "foo\"
followed by a newline will continue to be treated as a valid string with
contents foo\
rather than an unterminated string.
This exception exists to support naive uses of Windows file paths such as
"C:\foo\"
.