PHP Conference Japan 2024

其他更改

SAPI 模块中的更改

CLI

在没有 readline 扩展 的情况下使用 -a 现在会导致错误。以前,在没有 readline 的情况下使用 -a 与不带任何参数调用 php 的行为相同,除了打印额外的 "Interactive mode enabled" 消息。此模式不是交互式的。

PHPDBG

已删除 phpdbg 的远程功能。

已更改的函数

核心

foreachvar_dump()serialize()、对象比较等中使用的属性顺序已更改。属性现在根据其声明和继承自然排序。在基类中声明的属性将位于子属性之前。

此顺序与 zend_object 结构中属性的内部布局一致,并重复 default_properties_table[]properties_info_table[] 中的顺序。旧的顺序没有记录,并且是由类继承实现细节引起的。

过滤器

FILTER_FLAG_ALLOW_OCTAL 筛选器的 FILTER_VALIDATE_INT 标记现在接受带有前导八进制前缀 ("0o"/"0O") 的八进制字符串。

GMP

现在所有 GMP 函数都接受带有前导八进制前缀 ("0o"/"0O") 的八进制字符串。

PDO ODBC

使用 PDO::ATTR_SERVER_INFOPDO::ATTR_SERVER_VERSIONPDO::getAttribute() 现在返回值,而不是抛出 PDOException

反射

ReflectionProperty::setAccessible()ReflectionMethod::setAccessible() 现在不再有任何效果。属性和方法现在始终被认为可以通过反射访问。

标准

syslog() 现在是二进制安全的。

对扩展的其他更改

GD

imagewebp() 现在可以通过将 IMG_WEBP_LOSSLESS 作为质量传递来进行无损 WebP 编码。

仅当使用的 libgd 支持无损 WebP 编码时,才会定义此常量。

MySQLi

当链接到 libmysqlclient 时,现在可以使用 mysqli_stmt::next_result()mysqli::fetch_all()

OpenSSL

  • OpenSSL 扩展 现在至少需要 OpenSSL 1.0.2 版本。

  • 现在支持 OpenSSL 3.0。请注意,许多密码默认情况下不再启用(遗留提供程序的一部分),并且参数验证(例如最小密钥大小)现在更加严格。

Phar

  • 现在默认使用 SHA256 进行签名。

  • 添加了对 OpenSSL_SHA256 和 OpenSSL_SHA512 签名的支持。

SNMP

  • 为安全协议添加了对 SHA256 和 SHA512 的支持。

标准

--with-password-argon2 现在使用 pkg-config 检测 libargon2。因此,现在应使用 PKG_CONFIG_PATH 指定备用 libargon2 位置。

对 INI 文件处理的更改

  • 已删除 log_errors_max_len INI 指令。自 PHP 8.0.0 以来,它不再有任何作用。

  • 现在可以在带引号的字符串中转义前导美元符号:"\${" 现在将被解释为内容为 ${ 的字符串。

  • 双引号字符串中的反斜杠现在更一致地被视为转义字符。以前,后跟换行符以外的其他内容的 "foo\\" 未被视为已终止的字符串。现在将其解释为内容为 foo\ 的字符串。但是,作为例外,后跟换行符的字符串 "foo\" 将继续被视为内容为 foo\ 的有效字符串,而不是未终止的字符串。此例外是为了支持 Windows 文件路径的简单用法,例如 "C:\foo\"

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top