setcookie() 和 setrawcookie() 现在也支持以下签名
其中$options
是一个关联数组,它可以包含任何键 "expires"
, "path"
, "domain"
, "secure"
, "httponly"
和 "samesite"
。
以下 ini 指令已添加,用于自定义日志记录,如果 error_log 设置为 syslog
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
。
配置选项 --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 上下文选项,以方便设置所需的压缩级别。