PHP 大会日本 2024

其他更改

PHP 核心

Set(raw)cookie 接受 $option 参数

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

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

新的 Syslog ini 指令

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

syslog.facility
指定记录消息的程序类型。
syslog.filter
指定过滤器类型以过滤记录的消息,支持的过滤器类型 - allno-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_FILEPHPDBG_METHODPHPDBG_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 链接时可用。

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

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