setcookie() 和 setrawcookie() 现在也支持以下签名
其中$options
是一个关联数组,它可能具有任何键 "expires"
、"path"
、"domain"
、"secure"
、"httponly"
和 "samesite"
。
如果 error_log 设置为 syslog
,则已添加以下 ini 指令来自定义日志记录
all
、no-ctrl
和 ascii
。从 PHP 7.3.8 开始,raw
也可用,恢复了 syslog 在以前 PHP 版本中的行为。此过滤器也会影响对 syslog() 的调用。
已增强 循环 GC,这可能会导致性能显着提高。
var_export() 现在将 stdClass 对象导出为转换为对象的数组 ((object) array( ... )
),而不是使用不存在的方法 stdClass::__setState()。
debug_zval_dump() 已更改为以与 var_dump() 相同的方式显示递归数组和对象。现在,它不会显示它们两次。
array_push() 和 array_unshift() 现在也可以使用单个参数调用,这在使用扩展运算符时特别方便。
未使用常量 PHPDBG_FILE
、PHPDBG_METHOD
、PHPDBG_LINENO
和 PHPDBG_FUNC
已被删除。
现在也可以使用 getallheaders() 函数。
现在需要 libcurl ≥ 7.15.5。
FILTER_VALIDATE_FLOAT
现在也支持 thousand
选项,该选项定义允许的千位分隔符字符集。默认值 ("',."
) 与以前的 PHP 版本完全向后兼容。
FILTER_SANITIZE_ADD_SLASHES
已添加为 magic_quotes
过滤器的别名 (FILTER_SANITIZE_MAGIC_QUOTES
)。magic_quotes
过滤器可能会在 PHP 的未来版本中被删除。
默认传输模式已更改为 binary
。
当 PHP 与 ICU ≥ 56 链接时,Normalizer::NONE
已弃用。
引入 Normalizer::FORM_KC_CF
作为 Normalizer::normalize() 参数用于 NFKC_Casefold
规范化;在与 ICU ≥ 56 链接时可用。
JSON_THROW_ON_ERROR
,它可以与 json_decode() 或 json_encode() 一起使用,并在出错时导致这些函数抛出新的 JsonException,而不是设置使用 json_last_error() 和 json_last_error_msg() 检索的全局错误状态。JSON_PARTIAL_OUTPUT_ON_ERROR
优先于 JSON_THROW_ON_ERROR
。JavaScript 对象表示法
配置选项 --with-libmbfl 不再可用。
已删除对 ODBCRouter
和 Birdstep
(包括 birdstep.max_links
ini 指令)的支持。
已删除 opcache.inherited_hack
ini 指令。自 PHP 5.3.0 以来,该值已被忽略。
已添加 min_proto_version
和 max_proto_version
ssl 流选项以及相关常量以获取可能的 TLS 协议值。
已将 PCRE 扩展 升级到 PCRE2,这可能会导致细微的行为更改(例如,类中的字符范围现在解释得更严格),并增强了现有的正则表达式语法。
preg_quote() 现在也转义 '#'
字符。
已添加属性 PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
以启用自动跳过空行集。
已添加 PDO::DBLIB_ATTR_TDS_VERSION
属性,该属性公开 TDS 版本。
DATETIME2 列现在被视为 DATETIME 列。
现在可以通过将新的 PDO::SQLITE_ATTR_OPEN_FLAGS
属性设置为 PDO::SQLITE_OPEN_READONLY
以只读模式打开 SQLite3 数据库。
session_set_cookie_params() 现在也支持以下签名
其中$options
是一个关联数组,它可能具有任何键 "lifetime"
、"path"
、"domain"
、"secure"
、"httponly"
和 "samesite"
。相应地,session_get_cookie_params() 的返回值现在也具有一个键为 "samesite"
的元素。此外,已添加新的 session.cookie_samesite
ini 选项以设置 Cookie 的 SameSite 指令的默认值。它默认为 ""
(空字符串),因此未设置 SameSite 指令。可以设置为 "Lax"
或 "Strict"
,这将设置相应的 SameSite 指令。
现在也透明地支持针对 » tidyp 构建。由于 tidyp 没有提供获取发布日期的 API,因此 tidy_get_release() 和 tidy::getRelease() 在这种情况下返回 'unknown'
。
如果扩展已针对 libxml 构建,则 xml_set_external_entity_ref_handler() 回调的返回值不再被忽略。以前,返回值被忽略,解析从未停止。
不建议针对捆绑的 libzip 构建,但仍然可以通过在配置中添加 --without-libzip 来实现。
添加了 compress.zlib 包装器 的 zlib/level 上下文选项,以方便设置所需的压缩级别。