php8更新了什么
https://www.php.net/releases/8.1/zh.php
https://www.php.net/releases/8.2/zh.php
https://www.php.net/releases/8.3/zh.php
PHP 8.3.0 版本发布公告总结:
新功能和改进
-
类型化类常量:
-
允许在接口中定义类型化常量,从而在实现类中强制执行类型约束。
-
防止在实现类中使用不同类型的常量值。
-
-
动态获取类常量:
-
新增了从类中动态获取常量值的功能,简化了代码的书写和维护。
-
-
新增 #[\Override] 属性:
-
通过添加该属性,PHP 将在父类或接口中验证是否存在同名方法。
-
有助于防止拼写错误并简化代码重构。
-
-
只读属性深拷贝:
-
允许在魔术方法
__clone
中修改只读属性,实现深拷贝。
-
-
json_validate() 函数:
-
新增
json_validate()
函数,用于快速验证 JSON 字符串的语法正确性,比json_decode()
更高效。
-
-
Randomizer::getBytesFromString() 方法:
-
新增方法用于生成由特定字节组成的随机字符串,简化随机标识符的生成。
-
-
Randomizer::getFloat() 和 Randomizer::nextFloat() 方法:
-
提供无偏差地生成浮点数的方法,确保精度和范围的正确性。
-
-
命令行 linter 支持多个文件:
-
现在可以在命令行中一次性检查多个文件的语法错误。
-
新增类、接口和函数
-
DOM 扩展:
-
新增多个方法,如
DOMElement::getAttributeNames()
、DOMElement::insertAdjacentElement()
等。
-
-
Intl 扩展:
-
新增
IntlCalendar::setDate()
、IntlGregorianCalendar::createFromDate()
等方法。
-
-
LDAP 扩展:
-
新增
ldap_connect_wallet()
和ldap_exop_sync()
函数。
-
-
多字节字符串 (mbstring) 扩展:
-
新增
mb_str_pad()
函数。
-
-
POSIX 扩展:
-
新增
posix_sysconf()
、posix_pathconf()
等函数。
-
-
反射 (Reflection) 扩展:
-
新增
ReflectionMethod::createFromMethodName()
方法。
-
-
Socket 扩展:
-
新增
socket_atmark()
函数。
-
-
字符串函数:
-
新增
str_increment()
、str_decrement()
和stream_context_set_options()
函数。
-
-
Zip 扩展:
-
新增
ZipArchive::getArchiveFlag()
方法。
-
-
OpenSSL 扩展:
-
支持使用自定义 EC 参数生成 EC 密钥。
-
-
INI 配置:
-
新增
zend.max_allowed_stack_size
设置,用于设置允许的最大堆栈大小。 -
php.ini
现在支持后备/默认值语法。
-
-
匿名类:
-
现在可以是只读的。
-
弃用和向后不兼容
-
Date/Time 异常:
-
更合适的异常处理机制。
-
-
数组负索引:
-
在空数组中获取负索引时,将确保下一个索引是
n + 1
而不是0
。
-
-
range() 函数:
-
对
range()
函数进行了更改。
-
-
Traits 中静态属性:
-
重新声明静态属性的行为发生了变化。
-
-
U_MULTIPLE_DECIMAL_SEPARATORS 常量:
-
已被废弃,改为
U_MULTIPLE_DECIMAL_SEPARATORS
。
-
-
MT_RAND_PHP Mt19937 变体:
-
已被废弃。
-
-
ReflectionClass::getStaticProperties():
-
不再返回空值。
-
-
assert 配置:
-
assert.active
、assert.bail
、assert.callback
、assert.exception
和assert.warning
配置已被废弃。
-
-
get_class() 和 get_parent_class():
-
调用时未提供参数的行为已被废弃。
-
-
SQLite3 错误模式:
-
性能和语法改进
-
提高了性能,改进了语法,并增强了类型安全性。
资源和文档
-
可以在 下载 PHP 8.3 源代码。
-
Windows 二进制文件可在 站点找到。
-
变更历史记录清单可在 中查看。
-
详细的新功能和向后不兼容的变化请参考 PHP 手册中的