2023-08-30 03:25:46 +08:00
|
|
|
PHP 8.4 UPGRADE NOTES
|
2012-03-06 04:14:04 +08:00
|
|
|
|
|
|
|
1. Backward Incompatible Changes
|
|
|
|
2. New Features
|
2014-05-01 18:27:38 +08:00
|
|
|
3. Changes in SAPI modules
|
|
|
|
4. Deprecated Functionality
|
|
|
|
5. Changed Functions
|
|
|
|
6. New Functions
|
|
|
|
7. New Classes and Interfaces
|
2015-02-10 15:56:18 +08:00
|
|
|
8. Removed Extensions and SAPIs
|
2014-05-01 18:27:38 +08:00
|
|
|
9. Other Changes to Extensions
|
|
|
|
10. New Global Constants
|
|
|
|
11. Changes to INI File Handling
|
2014-08-22 19:35:07 +08:00
|
|
|
12. Windows Support
|
2019-01-28 17:34:31 +08:00
|
|
|
13. Other Changes
|
|
|
|
14. Performance Improvements
|
2010-03-25 00:23:50 +08:00
|
|
|
|
|
|
|
========================================
|
2012-03-06 04:14:04 +08:00
|
|
|
1. Backward Incompatible Changes
|
2010-03-25 00:23:50 +08:00
|
|
|
========================================
|
2016-04-25 05:49:52 +08:00
|
|
|
|
2023-09-09 07:14:26 +08:00
|
|
|
- DOM:
|
|
|
|
. New methods and constants were added to some DOM classes. If you inherit
|
|
|
|
from these and you happen to have a method or property with the same name,
|
|
|
|
you might encounter errors if the declaration is incompatible.
|
|
|
|
Consult sections 2. New Features and 6. New Functions for a list of
|
|
|
|
newly implemented methods and constants.
|
|
|
|
|
2023-10-01 00:00:45 +08:00
|
|
|
- SimpleXML:
|
|
|
|
. Get methods called, or casting to a string on a SimpleXMLElement will no
|
|
|
|
longer implicitly reset the iterator data, unless explicitly rewound.
|
|
|
|
For example, casting an element to a string within a foreach loop would
|
|
|
|
cause an infinite loop because it destroyed the current iterator data.
|
|
|
|
This is no longer the case as a consequence of the bugfixes for GH-12192,
|
|
|
|
GH-12208, #55098.
|
2023-08-21 13:14:45 +08:00
|
|
|
|
2023-09-22 23:35:03 +08:00
|
|
|
- Standard:
|
|
|
|
. round() now validates the value of the $mode parameter and throws a ValueError
|
|
|
|
for invalid modes. Previously invalid modes would have been interpreted as
|
|
|
|
PHP_ROUND_HALF_UP.
|
|
|
|
|
2023-09-30 19:59:08 +08:00
|
|
|
- XSL:
|
|
|
|
. XSLTProcessor::setParameter() will now throw a ValueError when its arguments
|
|
|
|
contain null bytes. This never actually worked correctly in the first place,
|
|
|
|
which is why it throws an exception nowadays.
|
2023-10-06 23:42:47 +08:00
|
|
|
. The typed properties XSLTProcessor::$cloneDocument and
|
|
|
|
XSLTProcessor::$doXInclude are now declared.
|
2023-09-30 19:59:08 +08:00
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
|
|
|
2. New Features
|
|
|
|
========================================
|
2009-01-29 01:23:28 +08:00
|
|
|
|
2023-09-09 07:14:26 +08:00
|
|
|
- DOM:
|
|
|
|
. Added constant DOMNode::DOCUMENT_POSITION_DISCONNECTED.
|
|
|
|
. Added constant DOMNode::DOCUMENT_POSITION_PRECEDING.
|
|
|
|
. Added constant DOMNode::DOCUMENT_POSITION_FOLLOWING.
|
|
|
|
. Added constant DOMNode::DOCUMENT_POSITION_CONTAINS.
|
|
|
|
. Added constant DOMNode::DOCUMENT_POSITION_CONTAINED_BY.
|
|
|
|
. Added constant DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC.
|
|
|
|
|
2023-09-30 19:59:08 +08:00
|
|
|
- XSL:
|
|
|
|
. It is now possible to use parameters that contain both single and double
|
|
|
|
quotes.
|
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2014-05-01 18:27:38 +08:00
|
|
|
3. Changes in SAPI modules
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2009-01-29 01:23:28 +08:00
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2014-05-01 18:27:38 +08:00
|
|
|
4. Deprecated Functionality
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2009-01-29 01:23:28 +08:00
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2014-05-01 18:27:38 +08:00
|
|
|
5. Changed Functions
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2009-06-24 03:40:31 +08:00
|
|
|
|
2023-09-20 00:05:05 +08:00
|
|
|
- Standard:
|
|
|
|
. The internal implementation for rounding to integers has been rewritten
|
|
|
|
to be easier to verify for correctness and to be easier to maintain.
|
|
|
|
Some rounding bugs have been fixed as a result of the rewrite. For
|
|
|
|
example previously rounding 0.49999999999999994 to the nearest integer
|
|
|
|
would have resulted in 1.0 instead of the correct result 0.0. Additional
|
|
|
|
inputs might also be affected and result in different outputs compared to
|
|
|
|
earlier PHP versions.
|
2023-10-06 20:27:01 +08:00
|
|
|
. The default value of the 'cost' option for PASSWORD_BCRYPT for password_hash()
|
|
|
|
has been increased from '10' to '12'.
|
|
|
|
|
|
|
|
RFC: https://wiki.php.net/rfc/bcrypt_cost_2023
|
2023-09-20 00:05:05 +08:00
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2014-05-01 18:27:38 +08:00
|
|
|
6. New Functions
|
2022-09-05 02:59:26 +08:00
|
|
|
========================================
|
2022-09-05 02:52:21 +08:00
|
|
|
|
2023-09-09 07:14:26 +08:00
|
|
|
- DOM:
|
|
|
|
. Added DOMNode::compareDocumentPosition().
|
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2014-05-01 18:27:38 +08:00
|
|
|
7. New Classes and Interfaces
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2009-01-29 01:23:28 +08:00
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2015-02-10 15:56:18 +08:00
|
|
|
8. Removed Extensions and SAPIs
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2009-01-29 01:23:28 +08:00
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2014-05-01 18:27:38 +08:00
|
|
|
9. Other Changes to Extensions
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2016-07-03 18:43:30 +08:00
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2014-05-01 18:27:38 +08:00
|
|
|
10. New Global Constants
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2010-03-25 00:23:50 +08:00
|
|
|
|
2023-09-21 12:51:52 +08:00
|
|
|
- Intl:
|
|
|
|
. The IntlDateFormatter class exposes now the new PATTERN constant
|
|
|
|
reflecting udat api's UDAT_PATTERN.
|
|
|
|
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2014-05-01 18:27:38 +08:00
|
|
|
11. Changes to INI File Handling
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2010-08-30 17:38:47 +08:00
|
|
|
|
2014-08-22 19:35:07 +08:00
|
|
|
========================================
|
|
|
|
12. Windows Support
|
|
|
|
========================================
|
|
|
|
|
2019-01-15 17:13:39 +08:00
|
|
|
========================================
|
2019-01-28 17:34:31 +08:00
|
|
|
13. Other Changes
|
2012-03-06 04:14:04 +08:00
|
|
|
========================================
|
2018-12-27 05:26:01 +08:00
|
|
|
|
|
|
|
========================================
|
2019-01-28 17:34:31 +08:00
|
|
|
14. Performance Improvements
|
2018-12-27 05:26:01 +08:00
|
|
|
========================================
|
2023-06-20 00:46:05 +08:00
|
|
|
|
2023-09-23 00:46:18 +08:00
|
|
|
* The performance of DOMNode::C14N() is greatly improved for the case without
|
|
|
|
an xpath query. This can give a time improvement of easily two order of
|
|
|
|
magnitude for documents with tens of thousands of nodes.
|