setcookie() 和 setrawcookie() 现在还支持以下签名:
$options
是关联数组,可以存在以下任意 key
"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
作为 NFKC_Casefold
标准化的
Normalizer::normalize() 参数;当与 ICU ≥ 56 链接时可用。
添加了新 JSON_THROW_ON_ERROR
flag,可以与 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 stream 选项以及可能的 TLS 协议值的相关常量。
PCRE 扩展已升级到 PCRE2,这可能会导致出现细微的行为变化(例如,现在对类中的字符范围进行更严格的解释),并增强了现有的正则表达式语法。
preg_quote() 现在也转义 '#'
字符。
添加了属性 PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
以启用自动跳过 rowset。
添加了公开 TDS 版本的 PDO::DBLIB_ATTR_TDS_VERSION
属性。
DATETIME2 列现在被视为 DATETIME 列。
现在可以通过将新的 PDO::SQLITE_ATTR_OPEN_FLAGS
属性设置 PDO::SQLITE_OPEN_READONLY
以只读模式打开 SQLite3 数据库。
session_set_cookie_params() 现在还支持以下签名:
其中$options
是关联数组,可以存在以下任意 key
"lifetime"
、"path"
、"domain"
、"secure"
、"httponly"
和 "samesite"
。因此,session_get_cookie_params() 的返回值现在也有带有 "samesite"
key
的元素。此外,还添加了新的 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 上下文选项,以方便设置所需的压缩级别。