介绍PHP 8的最新特性.3 -发布公告!

By: 天网科技美国有限责任公司
8 mins
500
PHP 8.3 released

PHP 8.《pg电子竞技》于2023年11月23日上映. 这个最新的PHP版本有最新的添加、特性和几个关键的改进. 虽然官方宣布它是一个小版本, however, 它有一些变化会影响您的PHP使用体验. 最新版本被推测为bug更少、性能更快的版本.

因此,让我们深入了解发布文档,并了解最新的PHP版本(PHP 8.3)与之前的版本(PHP 8)不同.2).

PHP 8.3新特性和优点

The latest PHP 8.3附带了一些最新的特性,但是请放心,它的特性比PHP 8少.2. 你可以肯定地看到它的主要特点是:

  • 类型化类常量

    Since PHP 7.4,我们已经能够为类属性声明类型. Before PHP 8.3、常量不能声明它们的类型,它们是根据它们的值推断出来的. 但是现在,在这个最新版本中,您可以显式声明常量. Also, PHP 8.3对接口有影响, child classes, and abstract classes, 因为您可以通过继承来强制类型, 防止扩展更改类型.

  • 动态类常量和枚举成员获取支持

    以下在以前的PHP版本中无效:

    $constantName = 'SOME_FLAG';
    
    回声SomeClassDefiningTheConstant: {$ constantName}; 
    echo SomeEnumDefiningTheMemberName::{$constantName}->value;

    它们只能通过constant()函数来访问:

    回声常数(“SomeClassDefiningTheConstant:: {$ constantName}”); 
    echo constant("SomeEnumDefiningTheMemberName::${constantName}")->value;

    这个特性现在也扩展到类常量和Enum成员,因为属性可以动态访问.

  • json_validate()函数

    Previously, 来验证JSON字符串, 它需要传递给json_decode()并检查是否释放错误和/或抛出异常(尽管它取决于您提供给函数的标志)。. Also, 这种验证大型JSON结构的方法主要是消耗系统内存来确定它是否有效. Not only this, but sometimes, 这是在处理结构时达到PHP内存限制的原因之一(在以前的PHP版本中)。. 而最新的PHP有一个性能更高、更不容易出错的函数.

    函数是这样写的:

    函数json_validate(string $json, int $depth = 512, int $flags = 0): bool

    在哪里$flags参数匹配json_decode()函数的行为, 没有引发异常的能力(引发异常的情况将导致布尔false返回值).

  • 随机扩展加法

    使您的系统对于需要随机字节的操作更加灵活, 添加了“随机”扩展 PHP 8.2. 它是专门为那些需要加密安全伪随机数生成(CSPRNG)的人设计的。.

    While PHP 8.有许多最新的方法,例如,

    1. 随机\随机函数发生器:getBytesFromString美元(字符串的字符串, Int $length): string返回指定长度的随机数序列,该序列只包含指定字符串中的字节. 它可以用于生成诸如随机短url之类的东西.

    2. 随机\随机函数发生器::getFloat (min美元浮动, float $max, Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen): float和Random\Randomizer::nextFloat(): float可以用来产生一个随机的float值. 在getFloat()的情况下,值将在$min和$max之间产生。, 包括或完全基于$boundary值(IntervalBoundary是一个新的Enum,定义了您可以使用的各种边界条件). nextFloat()总是产生0到1之间的结果,类似于JavaScript的Math.random() function.

  • 增加了mb_str_pad()

    PHP总是有一个str_pad()函数来开始填充, end it, 或者对于弦的两边, 直到它被用来达到请求长度. However, 该功能有其局限性,因为它只能用于单字节字符编码,以消除与UTF-8和其他多字节编码的使用.

    Now, PHP 8.3 has a new function, mb_str_pad美元(字符串的字符串, int $length, 字符串$pad_string = " ", int $pad_type = STR_PAD_RIGHT,?$encoding = null):字符串.

    这个最新的变化是为了补充str_pad()的功能,但有一些不同:

    多字节字符串可以用于填充字符串以及表示填充的字符串.

    默认情况下,它们将使用要填充的字符串的编码, 但是你也可以指定一个特定的编码.

  • 添加#[\Override]属性

    PHP 8中还有一个新特性.3,这是属性#[\Override]. 可以将该属性添加到方法中,以演示该方法打算覆盖父方法. So, PHP引擎现在将检查该方法是否存在于父类中,或者是否实现了接口(使用相同的语法),并引发编译时错误.

    这个特性对PHP开发人员来说是一个福音,因为它可以帮助他们在升级代码时防止错误.

YOU MAY ALSO LIKE: 网站迁移SEO检查表

PHP 8.3更改和弃用

除了许多值得注意的添加之外,PHP 8.3也带来了一些弃用和更改,例如:

  • class_alias现在支持PHP内置别名
  • 支持php的回退值.Ini环境变量语法
  • 一次检测多个文件
  • unserialize()现在发出E_WARNING而不是E_NOTICE
  • Gc_status()扩展信息
  • 克隆期间的只读行为
  • 在SQLite3扩展中默认使用异常
  • 更合适的日期/时间例外
  • 断言行为弃用
  • 允许动态静态值初始化
  • 改进range()参数的语义
  • 自增/自减运算符改进
  • 改进array_sum()和array_product()在提供不可用值时的行为

更新或迁移您现有的网站到PHP 8.3

升级您现有的网站到PHP 8.3、首先检查与新PHP版本的兼容性,并备份您的站点. 更新所有依赖项, 包括第三方库和插件, 到与PHP 8兼容的版本.3. 检查并修改您的代码库,以解决任何不推荐的特性或功能, 并在开发环境中彻底测试您的网站. 确保数据库和查询是兼容的, optimize performance, 并解决任何安全问题. 一旦测试成功, 将更新后的网站部署到生产环境中, monitor for issues, 并随时了解未来的PHP更新,以进行持续的维护和改进.

阅读文档 并开始迁移或升级.

Wrapping up

显然,迁移或更新您的网站或应用程序到PHP 8.3将提供为期三年的社区支持. 在您开始流程之前, 不要忘记彻底调查所有的变化,因为它们最终会影响网站或应用的性能.

作为领先的PHP开发公司,我们交付 expert PHP solutions 无论是简单的网络解决方案, 复杂的企业级应用程序, ecommerce solution, CMS site, upgradation, migration, maintenance, and more. Skynet Technologies以提供健壮和可扩展的PHP解决方案而闻名,这些解决方案可以满足您的特定业务需求,同时满足最高的编码标准和指导方针. 通过电子邮件与我们联系 [email protected] or request a quote.

118