其他更改

PHP 内核

Set(raw)cookie 接受 $option 参数

setcookie()setrawcookie() 现在也支持以下签名

setcookie(string $name, string $value = "", array $options = []): bool
其中 $options 是一个关联数组,它可以包含任何键 "expires", "path", "domain", "secure", "httponly""samesite"

新的 Syslog ini 指令

以下 ini 指令已添加,用于自定义日志记录,如果 error_log 设置为 syslog

syslog.facility
指定记录消息的程序类型。
syslog.filter
指定用于过滤记录消息的过滤器类型,支持的过滤器类型为 - all, no-ctrlascii。从 PHP 7.3.8 开始,raw 也可用,恢复了 syslog 在以前 PHP 版本中的行为方式。此过滤器也会影响对 syslog() 的调用。
syslog.ident
指定添加到每个消息之前的标识字符串。

垃圾回收

循环 GC 已得到增强,这可能会导致性能显著提高。

杂项

var_export() 现在将 stdClass 对象导出为数组转换为对象 ((object) array( ... )),而不是使用不存在的方法 stdClass::__setState().

debug_zval_dump() 已更改为以与 var_dump() 相同的方式显示递归数组和对象。现在,它不再显示两次。

array_push()array_unshift() 现在也可以使用单个参数调用,这对于扩展运算符特别方便。

交互式 PHP 调试器

未使用的常量 PHPDBG_FILE, PHPDBG_METHOD, PHPDBG_LINENOPHPDBG_FUNC 已被删除。

FastCGI 进程管理器

现在也提供了 getallheaders() 函数。

客户端 URL 库

现在需要 libcurl ≥ 7.15.5。

数据过滤

FILTER_VALIDATE_FLOAT 现在也支持 thousand 选项,该选项定义了允许的千位分隔符字符集。默认值 ("',.") 与以前的 PHP 版本完全向后兼容。

FILTER_SANITIZE_ADD_SLASHES 已添加为 magic_quotes 过滤器的别名 (FILTER_SANITIZE_MAGIC_QUOTES)。magic_quotes 过滤器将在 PHP 的未来版本中被删除。

FTP

默认传输模式已更改为 binary

国际化函数

当 PHP 与 ICU ≥ 56 链接时,Normalizer::NONE 已被弃用。

引入 Normalizer::FORM_KC_CF 作为 Normalizer::normalize() 参数,用于 NFKC_Casefold 规范化;在与 ICU ≥ 56 链接时可用。

JavaScript 对象表示法

已添加一个新的标志,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 不再可用。

ODBC (统一)

ODBCRouterBirdstep 的支持,包括 birdstep.max_links ini 指令,已被删除。

OPcache

opcache.inherited_hack ini 指令已被删除。自 PHP 5.3.0 以来,该值已被忽略。

OpenSSL

已添加 min_proto_versionmax_proto_version ssl 流选项以及与可能的 TLS 协议值相关的常量。

正则表达式 (与 Perl 兼容)

PCRE 扩展 已升级到 PCRE2,这可能会导致细微的行为变化(例如,类中的字符范围现在被更严格地解释),并扩展了现有的正则表达式语法。

preg_quote() 现在也转义了 '#' 字符。

Microsoft SQL Server 和 Sybase 函数 (PDO_DBLIB)

已添加属性 PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS,以启用自动跳过空结果集。

已添加属性 PDO::DBLIB_ATTR_TDS_VERSION,它公开 TDS 版本。

DATETIME2 列现在被视为 DATETIME 列。

SQLite 函数 (PDO_SQLITE)

现在可以通过将新的 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 指令。

Tidy

现在也透明地支持针对 » tidyp 构建。由于 tidyp 没有提供用于获取发布日期的 API,因此 tidy_get_release()tidy::getRelease() 在这种情况下返回 'unknown'

XML 解析器

如果扩展针对 libxml 构建,则 xml_set_external_entity_ref_handler() 回调的返回值不再被忽略。以前,返回值被忽略,解析从未停止。

Zip

不鼓励针对捆绑的 libzip 构建,但仍然可以通过在配置中添加 --without-libzip 来实现。

Zlib 压缩

已添加用于 compress.zlib 包装器 的 zlib/level 上下文选项,以方便设置所需的压缩级别。

添加笔记

用户贡献笔记

此页面没有用户贡献笔记。
To Top