1PHP 8.5 UPGRADE NOTES 2 31. Backward Incompatible Changes 42. New Features 53. Changes in SAPI modules 64. Deprecated Functionality 75. Changed Functions 86. New Functions 97. New Classes and Interfaces 108. Removed Extensions and SAPIs 119. Other Changes to Extensions 1210. New Global Constants 1311. Changes to INI File Handling 1412. Windows Support 1513. Other Changes 1614. Performance Improvements 17 18======================================== 191. Backward Incompatible Changes 20======================================== 21 22- BZ2: 23 . bzcompress() now throws a ValueError when $block_size is not between 24 1 and 9. 25 . bzcompress() now throws a ValueError when $work_factor is not between 26 0 and 250. 27 28- Core: 29 . It is no longer possible to use "array" and "callable" as class alias names 30 in class_alias(). 31 32- Intl: 33 . The extension now requires at least ICU 57.1. 34 35- LDAP: 36 . ldap_get_option() and ldap_set_option() now throw a ValueError when 37 passing an invalid option. 38 39- SPL: 40 . ArrayObject no longer accepts enums, as modifying the $name or $value 41 properties can break engine assumptions. 42 43======================================== 442. New Features 45======================================== 46 47- DOM: 48 . Added Dom\Element::$outerHTML. 49 50- XSL: 51 . The $namespace argument of XSLTProcessor::getParameter(), 52 XSLTProcessor::setParameter() and XSLTProcessor::removeParameter() 53 now actually works instead of being treated as empty. 54 This only works if the $name argument does not use Clark notation 55 and is not a QName because in those cases the namespace is taken 56 from the namespace href or prefix respectively. 57 58======================================== 593. Changes in SAPI modules 60======================================== 61 62======================================== 634. Deprecated Functionality 64======================================== 65 66- Hash: 67 The MHASH_* constants have been deprecated. These have been overlooked 68 when the mhash*() function family has been deprecated per 69 https://wiki.php.net/rfc/deprecations_php_8_1#mhash_function_family 70 71======================================== 725. Changed Functions 73======================================== 74 75- Zlib: 76 . The "use_include_path" argument for the 77 gzfile, gzopen and readgzfile functions had been changed 78 from int to boolean. 79 80- PDO_PGSQL: 81 . PDO::pgsqlCopyFromArray also supports inputs as Iterable. 82 . Pdo\Pgsql::setAttribute and Pdo\Pgsql::prepare supports 83 PDO::ATTR_PREFETCH sets to 0 which set to lazy fetch mode. 84 In this mode, statements cannot be run parallely. 85 86- PGSQL: 87 . pg_copy_from also supports inputs as Iterable. 88 89======================================== 906. New Functions 91======================================== 92 93- Curl: 94 . curl_multi_get_handles() allows retrieving all CurlHandles current 95 attached to a CurlMultiHandle. This includes both handles added using 96 curl_multi_add_handle() and handles accepted by CURLMOPT_PUSHFUNCTION. 97 98- DOM: 99 . Added Dom\Element::insertAdjacentHTML(). 100 101- PGSQL: 102 . pg_close_stmt offers an alternative way to close a prepared 103 statement from the DEALLOCATE sql command in that we can reuse 104 its name afterwards. 105 106- Reflection: 107 . ReflectionConstant::getFileName() was introduced. 108 . ReflectionConstant::getExtension() and 109 ReflectionConstant::getExtensionName() were introduced. 110 111======================================== 1127. New Classes and Interfaces 113======================================== 114 115======================================== 1168. Removed Extensions and SAPIs 117======================================== 118 119======================================== 1209. Other Changes to Extensions 121======================================== 122 123- Readline: 124 . The return types of readline_add_history(), readline_clear_history(), and 125 readline_callback_handler_install() have been changed to true, rather 126 than bool. 127 128======================================== 12910. New Global Constants 130======================================== 131 132- Core: 133 . PHP_BUILD_DATE. 134 135- POSIX: 136 . POSIX_SC_OPEN_MAX. 137 138- Sockets: 139 . IPPROTO_ICMP/IPPROTO_ICMPV6. 140 141======================================== 14211. Changes to INI File Handling 143======================================== 144 145======================================== 14612. Windows Support 147======================================== 148 149* The configuration variables PHP_VERSION, PHP_MINOR_VERSION, and 150 PHP_RELEASE_VERSION are now always numbers. Previously, they have been 151 strings for buildconf builds. 152 153* COM: 154 . The extension is now build shared by default; previously it defaulted to a 155 static extension, although the official Windows binaries built a shared 156 extension. 157 158* FFI: 159 . It is no longer necessary to specify the library when using FFI::cdef() 160 and FFI::load(). However, this convenience feature should not be used in 161 production. 162 163======================================== 16413. Other Changes 165======================================== 166 167======================================== 16814. Performance Improvements 169======================================== 170 171- XMLWriter: 172 . Improved performance and reduce memory consumption. 173