Core:
- Improved PHP GC. (Dmitry, Nikita)
- Redesigned the old ext_skel program written in PHP, run:
‘php ext_skel.php’ for all options. This means there are no dependencies,
thus making it work on Windows out of the box. (Kalle) - Removed support for BeOS. (Kalle)
- Add PHP_VERSION to phpinfo()
. (github/MattJeevas) - Add net_get_interfaces(). (Sara, Joe, Anatol)
- Implemented flexible heredoc and nowdoc syntax, per
RFC https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes.
(Thomas Punt) - Added support for references in list() and array destructuring, per
RFC https://wiki.php.net/rfc/list_reference_assignment.
(David Walker) - Fixed bug #75683 (Memory leak in zend_register_functions() in ZTS mode).
(Dmitry) - Fixed bug #75031 (support append mode in temp/memory streams). (adsr)
- Fixed bug #74860 (Uncaught exceptions not being formatted properly when
error_log set to “syslog”). (Philip Prindeville) - Fixed bug #75220 (Segfault when calling is_callable on parent).
(andrewnester) - Fixed bug #69954 (broken links and unused config items in distributed ini
files). (petk) - Fixed bug #74922 (Composed class has fatal error with duplicate, equal const
properties). (pmmaga) - Fixed bug #63911 (identical trait methods raise errors during composition).
(pmmaga) - Fixed bug #75677 (Clang ignores fastcall calling convention on variadic
function). (Li-Wen Hsu) - Fixed bug #54043 (Remove inconsitency of internal exceptions and user
defined exceptions). (Nikita) - Fixed bug #53033 (Mathematical operations convert objects to integers).
(Nikita) - Fixed bug #73108 (Internal class cast handler uses integer instead of
float). (Nikita) - Fixed bug #75765 (Fatal error instead of Error exception when base class is
not found). (Timur Ibragimov) - Fixed bug #76198 (Wording: “iterable” is not a scalar type). (Levi Morrison)
- Fixed bug #76137 (config.guess/config.sub do not recognize RISC-V). (cmb)
BCMath:
- Fixed bug #66364 (BCMath bcmul ignores scale parameter). (cmb)
- Implemented request #67855 (No way to get current scale in use). (Chris
Wright, cmb) - Fixed bug #75164 (split_bc_num() is pointless). (cmb)
- Fixed bug #75169 (BCMath errors/warnings bypass PHP’s error handling). (cmb)
cURL:
- Fixed bug #74125 (Fixed finding CURL on systems with multiarch support).
(cebe)
Date:
- Implemented FR #74668: Add DateTime::createFromImmutable() method.
(majkl578, Rican7) - Fixed bug #75222 (DateInterval microseconds property always 0). (jhdxr)
- Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it).
(jhdxr) - Fixed bug #76131 (mismatch arginfo for date_create). (carusogabriel)
DBA:
- Fixed bug #75264 (compiler warnings emitted). (petk)
GD:
- Added support for WebP in imagecreatefromstring() (Andreas Treichel, cmb).
GMP:
- Export internal structures and accessor helpers for GMP object. (Sara)
- Added gmp_binomial(n, k). (Nikita)
- Added gmp_lcm(a, b). (Nikita)
- Added gmp_perfect_power(a). (Nikita)
- Added gmp_kronecker(a, b). (Nikita)
interbase:
- Fixed bug #75453 (Incorrect reflection for ibase_[p]connect). (villfa)
intl:
- Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead
of destination). (andrewnester)
JSON:
- Added JSON_THROW_ON_ERROR flag. (Andrea)
LDAP:
- Added ldap_exop_refresh helper for EXOP REFRESH operation with dds overlay.
(Come) - Added full support for sending and parsing ldap controls (Come)
- Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros). (dzuelke)
libxml2:
- Fixed bug #75871 (use pkg-config where available). (pmmaga)
litespeed:
- Fixed bug #75248 (Binary directory doesn’t get created when building
only litespeed SAPI). (petk) - Fixed bug #75251 (Missing program prefix and suffix). (petk)
mbstring:
- Fixed bug #65544 (mb title case conversion-first word in quotation isn’t
capitalized). (Nikita) - Fixed bug #71298 (MB_CASE_TITLE misbehaves with curled apostrophe/quote.
(Nikita) - Fixed bug #73528 (Crash in zif_mb_send_mail). (Nikita)
- Fixed bug #74929 (mbstring functions version 7.1.1 are slow compared to 5.3
on Windows). (Nikita) - Fixed bug #76319 (mb_strtolower with invalid UTF-8 causes segmentation
fault). (Nikita) - Updated to Oniguruma 6.8.2. (cmb)
ODBC:
- Removed support for ODBCRouter. (Kalle)
- Removed support for Birdstep. (Kalle)
OpenSSL:
- Added openssl_pkey_derive function. (Jim Zubov)
PCRE:
- Implemented https://wiki.php.net/rfc/pcre2-migration (Anatol, Dmitry)
- Fixed bug #75355 (preg_quote() does not quote # control character).
(Michael Moravec)
PDO_DBlib:
- Implemented request #69592 (allow 0-column rowsets to be skipped
automatically). (fandrieu) - Fixed bug #74243 (allow locales.conf to drive datetime format). (fandrieu)
- Expose TDS version as \PDO::DBLIB_ATTR_TDS_VERSION attribute on \PDO
instance. (fandrieu) - Treat DATETIME2 columns like DATETIME. (fandrieu)
PDO_OCI:
- Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized
before PHP-FPM sets it up). (Ingmar Runge)
PDO SQLite
- Add support for additional open flags
pgsql:
- Added new error constants for pg_result_error(): (Kalle)
- Requires Postgres 9.3
- PGSQL_DIAG_SCHEMA_NAME
- PGSQL_DIAG_TABLE_NAME
- PGSQL_DIAG_COLUMN_NAME
- PGSQL_DIAG_DATATYPE_NAME
- PGSQL_DIAG_CONSTRAINT_NAME
- Requires Postgres 9.6
- PGSQL_DIAG_SEVERITY_NONLOCALIZED
- Requires Postgres 9.3
phar:
- Fixed bug #74991 (include_path has a 4096 char limit in some cases).
(bwbroersma) - Fixed bug #65414 (deal with leading slash when adding files correctly).
(bishopb)
readline:
- Added completion_append_character and completion_suppress_append options
to readline_info() if linked against libreadline. (krageon)
Session:
- Fixed bug #74941 (session fails to start after having headers sent).
(morozov)
SimpleXML:
- Fixed bug #54973 (SimpleXML casts integers wrong). (Nikita)
SOAP:
- Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders). (villfa)
- Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is
used). (Anton Artamonov)
SPL:
- Fixed bug #74977 (Appending AppendIterator leads to segfault).
(Andrew Nester) - Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach
loop). (jhdxr) - Fixed bug #74372 (autoloading file with syntax error uses next autoloader,
may hide parse error). (Nikita) - Fixed bug #75878 (RecursiveTreeIterator::setPostfix has wrong signature).
(cmb) - Fixed bug #74519 (strange behavior of AppendIterator). (jhdxr)
- Fixed bug #76131 (mismatch arginfo for splarray constructor).
(carusogabriel)
SQLite3:
- Updated bundled libsqlite to 3.24.0. (cmb)
Standard:
- Added is_countable() function. (Gabriel Caruso)
- Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike,
Philip Sharp) - Fixed unserialize(), to disable creation of unsupported data structures
through manually crafted strings. (Dmitry) - Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator
that getrandom() is missing). (sarciszewski) - Fixed bug #74719 (fopen() should accept NULL as context). (Alexander Holman)
- Fixed bug #69948 (path/domain are not sanitized in setcookie). (cmb)
- Fixed bug #75996 (incorrect url in header for mt_rand). (tatarbj)
- Remove superfluous warnings from inet_ntop()/inet_pton(). (daverandom)
Testing:
- Implemented request #62055 (Make run-tests.php support –CGI-### sections).
(cmb)
Tidy:
- Fixed bug #74707 (Tidy has incorrect ReflectionFunction param counts for
functions taking tidy). (Gabriel Caruso)
Zlib:
- Added zlib/level context option for compress.zlib wrapper. (Sara)