PHP 8.4正式发布,新增及移除的功能有哪些?

图片

PHP 8.4 第一个正式发布版本今天发布。PHP 8.4 在很大程度上向后兼容 PHP 8.0 到 8.4,并带来了一些新功能。

PHP 8.4 新增/变更功能

  • curl_getinfo 支持 CURLINFO_POSTTRANSFER_TIME_T
  • curl_version() 支持 feature_list
  • 新增 http_(get|clear)_last_response_headers 函数
  • 新增 CURLOPT_PREREQFUNCTION 选项
  • 新增 CURLOPT_DEBUGFUNCTION 选项
  • 新增 CURLOPT_SERVER_RESPONSE_TIMEOUT 选项,以替换 CURLOPT_FTP_RESPONSE_TIMEOUT
  • 新增 CURLOPT_TCP_KEEPCNT 选项
  • 新增round()函数
  • 新增 mb_trimmb_ltrimmb_rtrim 函数
  • DateTime(Immutable) 类新增 createFromTimestamp 方法
  • phpinfo 显示 PHP 整数大小信息
  • DateTime(Immutable) 类新增 get/setMicrosecond 方法
  • 新增函数 request_parse_body
  • PCRE2 升级及相关正则表达式变化

PHP 8.4 语法/功能变更

  • OpenSSL:最低要求的 OpenSSL 版本提升至 1.1.1
  • MBString:Unicode 字符数据库更新至版本 16
  • exit/die 从语言构造变为函数
  • CURLOPT_DNS_USE_GLOBAL_CACHE 不再有效
  • 密码哈希:默认 Bcrypt 成本从 10 变为 12
  • PHP_ZTSPHP_DEBUG 常量值类型从 int 变为 bool
  • Opcache:JIT 启用方式的 INI 变更
  • round() 函数:无效的舍入模式将抛出 \ValueError 异常
  • Curl:最低要求的 libcurl 版本提升至 7.61.0

PHP 8.4 弃用功能

  • 隐式可为空的参数声明被弃用
  • E_STRICT 常量被弃用
  • 调用 session_set_save_handler() 时使用超过 2 个参数被弃用
  • CSV:必须提供 $escape 参数
  • CURLOPT_BINARYTRANSFER 被弃用

PHP 8.4 移除功能

  • Pspell 扩展从 PHP 核心移至 PECL
  • IMAP 扩展从 PHP 核心移至 PECL
  • OCI8 和 PDO-OCI 扩展从 PHP 核心移至 PECL

来源: 开源技术小栈

THE END