PHP 8.1 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 14. Performance Improvements ======================================== 1. Backward Incompatible Changes ======================================== - Standard: . version_compare() no longer accepts undocumented operator abbreviations. ======================================== 2. New Features ======================================== - hash: . The following functions have changed signatures: - function hash(string $algo, string $data, bool $binary = false, array $options = []): string|false {} - function hash_file(string $algo, string $filename, bool $binary = false, array $options = []): string|false {} - function hash_init(string $algo, int $flags = 0, string $key = "", array $options = []): HashContext {} The additional `$options` argument can be used to pass algorithm specific data. . Added MurmurHash3 with streaming support. The following variants are implemented: - murmur3a, 32-bit hash - murmur3c, 128-bit hash for x86 - murmur3f, 128-bit hash for x64 The initial hash state can be passed through the `seed` key in the `$options` array, for example: ```php $h = hash("murmur3f", $data, options: ["seed" => 42]); echo $h, "\n"; ``` A valid seed value is within the range from 0 to the plaform defined UINT_MAX, usually 4294967295. ======================================== 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 ======================================== - OpenSSL: . The OpenSSL extension now requires at least OpenSSL version 1.0.2. - Standard: . --with-password-argon2 now uses pkg-config to detect libargon2. As such, an alternative libargon2 location should now be specified using PKG_CONFIG_PATH. ======================================== 10. New Global Constants ======================================== ======================================== 11. Changes to INI File Handling ======================================== ======================================== 12. Windows Support ======================================== . The macro IGNORE_URL_WIN has been removed; it had no effect as of PHP 5.0.0. ======================================== 13. Other Changes ======================================== ======================================== 14. Performance Improvements ========================================