mirror of
https://github.com/php/php-src.git
synced 2024-12-27 02:39:39 +08:00
b2b2b437af
convert_scalar_to_number() will now call cast_object() with an _IS_NUMBER argument, in which case the cast handler should return either an integer or floating point number, whichever is more appropriate. Previously convert_scalar_to_number() unconditionally converted objects to integers instead. Fixes bug #53033. Fixes bug #54973. Fixes bug #73108.
187 lines
5.6 KiB
Plaintext
187 lines
5.6 KiB
Plaintext
PHP 7.3 UPGRADE NOTES
|
|
|
|
1. Backward Incompatible Changes
|
|
2. New Features
|
|
3. Changes in SAPI modules
|
|
4. Deprecated Functionality
|
|
5. Changed Functions
|
|
6. New Functions
|
|
7. New Classes and Interfaces
|
|
8. Removed Extensions and SAPIs
|
|
9. Other Changes to Extensions
|
|
10. New Global Constants
|
|
11. Changes to INI File Handling
|
|
12. Windows Support
|
|
13. Other Changes
|
|
|
|
|
|
========================================
|
|
1. Backward Incompatible Changes
|
|
========================================
|
|
|
|
Core:
|
|
. The ext_skel utility has been completely redesigned with new options and
|
|
some old options removed. This is now written in PHP and has no external
|
|
dependencies.
|
|
. Support for BeOS has been dropped.
|
|
. Exceptions thrown due to automatic conversion of warnings into exceptions
|
|
in EH_THROW mode (e.g. some DateTime exceptions) no longer populate
|
|
error_get_last() state. As such, they now work the same way as manually
|
|
thrown exceptions.
|
|
|
|
BCMath:
|
|
. All warnings thrown by BCMath functions are now using PHP's error handling.
|
|
Formerly some warnings have directly been written to stderr.
|
|
. bcmul() and bcpow() now return numbers with the requested scale. Formerly,
|
|
the returned numbers may have omitted trailing decimal zeroes.
|
|
|
|
SPL:
|
|
. If an SPL autoloader throws an exception, following autoloaders will not be
|
|
executed. Previously all autoloaders were executed and exceptions were
|
|
chained.
|
|
|
|
SimpleXML:
|
|
. Mathematic operations involving SimpleXML objects will now treat the text as
|
|
an integer or float, whichever is more appropriate. Previously values were
|
|
treated as integers unconditionally.
|
|
|
|
Standard:
|
|
. getimagesize() and related functions now report the mime type of BMP images
|
|
as image/bmp instead of image/x-ms-bmp, since the former has been registered
|
|
with the IANA (see RFC 7903).
|
|
|
|
========================================
|
|
2. New Features
|
|
========================================
|
|
|
|
Core:
|
|
. Array destructuring now supports reference assignments using the syntax
|
|
[&$a, [$b, &$c]] = $d. The same is also supported for list().
|
|
(RFC: https://wiki.php.net/rfc/list_reference_assignment)
|
|
|
|
BCMath:
|
|
. bcscale() can now also be used as getter to retrieve the current scale in use.
|
|
|
|
========================================
|
|
3. Changes in SAPI modules
|
|
========================================
|
|
|
|
========================================
|
|
4. Deprecated Functionality
|
|
========================================
|
|
|
|
========================================
|
|
5. Changed Functions
|
|
========================================
|
|
|
|
JSON:
|
|
. A new flag has been added, JSON_THROW_ON_ERROR, which can be used with
|
|
json_decode() or json_encode() and causes these functions to throw a
|
|
JsonException upon an error, instead of setting the global error state that
|
|
is retrieved with json_last_error(). JSON_PARTIAL_OUTPUT_ON_ERROR takes
|
|
precedence over JSON_THROW_ON_ERROR.
|
|
(RFC: https://wiki.php.net/rfc/json_throw_on_error)
|
|
|
|
Standard:
|
|
. debug_zval_dump() was changed to display recursive arrays and objects
|
|
in the same way as var_dump(). Now, it doesn't display them twice.
|
|
|
|
PCRE:
|
|
. preg_quote() now also escapes the '#' character.
|
|
|
|
========================================
|
|
6. New Functions
|
|
========================================
|
|
|
|
Date:
|
|
. Added the DateTime::createFromImmutable() method, which mirrors
|
|
DateTimeImmutable::createFromMutable().
|
|
|
|
GMP:
|
|
. Added gmp_binomial(n, k) for calculating binomial coefficients.
|
|
. Added gmp_lcm(a, b) for calculating the least common multiple.
|
|
. Added gmp_perfect_power(a) to check if number is a perfect power.
|
|
. Added gmp_kronecker(a, b) to compute the Kronecker symbol.
|
|
|
|
Intl:
|
|
. Added void Spoofchecker::setRestrictionLevel(int $level) method, available
|
|
when linked with ICU >= 58.1. Levels are represented as class constants
|
|
- Spoofchecker::ASCII
|
|
- Spoofchecker::HIGHLY_RESTRICTIVE
|
|
- Spoofchecker::MODERATELY_RESTRICTIVE
|
|
- Spoofchecker::MINIMALLY_RESTRICTIVE
|
|
- Spoofchecker::UNRESTRICTIVE
|
|
- Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE
|
|
For the detailed documentation on the restriction levels, see
|
|
URestrictionLevel under
|
|
http://icu-project.org/apiref/icu4c/uspoof_8h.html
|
|
|
|
SPL:
|
|
. Added spl_object_id().
|
|
|
|
========================================
|
|
7. New Classes and Interfaces
|
|
========================================
|
|
|
|
JSON:
|
|
. JsonException
|
|
|
|
========================================
|
|
8. Removed Extensions and SAPIs
|
|
========================================
|
|
|
|
========================================
|
|
9. Other Changes to Extensions
|
|
========================================
|
|
|
|
Curl:
|
|
. libcurl >= 7.12.1 is now required
|
|
|
|
FTP:
|
|
. Set default transfer mode to binary
|
|
|
|
ODBC:
|
|
. Support for ODBCRouter has been removed.
|
|
. Support for Birdstep has been removed.
|
|
|
|
ZIP:
|
|
. Bundled libzip has been dropped,
|
|
system library is now required.
|
|
|
|
========================================
|
|
10. New Global Constants
|
|
========================================
|
|
|
|
JSON:
|
|
. JSON_THROW_ON_ERROR
|
|
|
|
PGSQL:
|
|
. 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
|
|
|
|
========================================
|
|
11. Changes to INI File Handling
|
|
========================================
|
|
|
|
- birdstep.max_links
|
|
. This INI directive has been removed.
|
|
|
|
- opcache.inherited_hack
|
|
. This INI directive has been removed. The value has already been ignored
|
|
since PHP 5.3.0.
|
|
|
|
========================================
|
|
12. Windows Support
|
|
========================================
|
|
|
|
========================================
|
|
13. Other Changes
|
|
========================================
|
|
|