PHP - Manual: 其他变更
2024-12-21
PHP 模块从 php7_module
重命名为
php_module
。
可通过新参数 filter
来过滤 ReflectionClass::getConstants() 和
ReflectionClass::getReflectionConstants() 的返回结果。
新增三个常量,搭配使用:
ReflectionClassConstant::IS_PUBLIC
ReflectionClassConstant::IS_PROTECTED
ReflectionClassConstant::IS_PRIVATE
ZipArchive::addGlob() 和
ZipArchive::addPattern() 方法中
options
数组参数可接受更多的值:
flags
comp_method
comp_flags
env_method
enc_password
ZipArchive::addEmptyDir()、ZipArchive::addFile()、
ZipArchive::addFromString()
方法新增 flags
参数。
可用于名称编码
(ZipArchive::FL_ENC_*
) 与条目(entry)替换
(ZipArchive::FL_OVERWRITE
)。
ZipArchive::extractTo() 现在会储存文件的修改时间。
现在 CURL 扩展要求 libcurl 版本至少为 7.29.0。
移除了 curl_version() 废弃的参数 version
。
现在 DatePeriod 实现(implements)了 IteratorAggregate (之前是 Traversable)。
现在 DOMNamedNodeMap 与 DOMNodeList 实现(implements)了 IteratorAggregate (之前是 Traversable)。
现在 IntlBreakIterator 与 ResourceBundle 实现(implements)了 IteratorAggregate (之前是 Traversable)。
现在环境允许时,enchant 会默认使用 libenchant-2。 仍然支持 libenchant 1,但已经废弃,并将在未来移除。
imagepolygon()、
imageopenpolygon()、imagefilledpolygon()
的参数 num_points
现在为可选参数。
这些函数可用三或四个参数去调用。
省略参数时,会按 count($points)/2
计算。
新增函数 imagegetinterpolation(),可获取当前的插值(interpolation)。
现在无法禁用 JSON 扩展,将是任意 PHP 版本的内置功能,类似 date 扩展。
更新 Unicode 数据表版本到 13.0.0。
现在 PDOStatement 实现(implements)了 IteratorAggregate (之前是 Traversable)。
现在要求 libxml 最小版本为 2.9.0。 这代表着确保了默认情况下禁用了外部实体加载(external entity loading)的功能。 无需额外步骤即可防范 XML 外部实体注入攻击(XXE attacks)。
未使用 mysqlnd 时(也是默认且推荐的做法), 支持的最小 libmysqlclient 版本为 5.5。
现在 mysqli_result 实现(implements)了 IteratorAggregate (之前是 Traversable)。
PGSQL 与 PDO PGSQL 扩展需要 libpq 的版本号至少为 9.1。
在交互提示开始之前调用 readline_completion_function() (例如在 auto_prepend_file 中), 将重写默认的交互输入补全函数。 之前,只有交互提示(interactive prompt)开始后, readline_completion_function() 才会运行。
现在 SimpleXMLElement 实现(implements)了 RecursiveIterator 并吸收了 SimpleXMLIterator 的功能。 SimpleXMLIterator 是 SimpleXMLElement 的一个空扩展。
com.dotnet_version 是一个新的 INI 指令,用于选择 dotnet 对象的 .NET framework 版本。
zend.exception_string_param_max_len 是一个新的 INI 指令,用于设置字符串化的调用栈(stack strace)的最大字符串长度。
不再支持 EBCDIC targets,虽然它不太可能还在当初的地方继续运行。
opcache 扩展新增了即时编译(JIT) 支持。
array_slice() 用于没有空隙的数组时, 将不会扫描整个数组去查找开始的位移(offset)。 在 offset 较大、长度较小时,会显著减少函数的运行时间。
当本地化 LC_CTYPE
为 "C"
时(也是默认值),
strtolower() 会使用 SIMD 的实现。
官方地址:https://www.php.net/manual/en/migration80.other-changes.php