PHP 8.2 正式发布:引入随机数扩展和只读类

PHP 8.2 版本于近日正式发布。对于很多程序员朋友来说,PHP 是“最好的语言”,最近发布的 8.2 版本可谓是 2022 年的年度大版本更新。

PHP 8.2 增加了对在特征中定义常量的支持,引入了“Random 随机数”扩展和“read-only 只读”类,析取范式 (DNF) 类型,更新了内置 Web 服务器的 MIME 类型表,减少了各种内存占用 对 macOS Instrument 的 JIT 性能分析生成的初始支持,为 Linux 启用arc4random_buf,并为随机字节引入了 Glibc 2.36+。

PHP 8.2 最初支持在 Windows 上为 ARM64 平台创建跨平台,在 PHP .text 字段附近分配 JIT 缓冲区 Opcache,以允许使用与 IP 相关的直接调用和跳转。新版本还引入了 PHP 套接字的新选项、对新 Curl 选项的支持、新的 ZipArchive 方法、弃用动态属性以及一些性能优化。

领先的CMS平台,如WordPress, Joomla, Drupal, Magento等,提供了互联网上大部分的web内容,都是使用PHP构建的。这就是为什么每个新版本都会在web开发人员中引起很大的关注和反响。

现在让我们来看看 PHP 8.2 脚本语言有什么新特性

在上一个 PHP 8.1 版本发布一年后,PHP 8.2 又带来了一些新特性。

只读类

PHP 8.1 引入了只读属性。对于只读类,PHP 8.2 进一步扩展了只读属性。以前,您可以创建一个类并将所有属性定义为只读。到目前为止,很好,但这样做可能会很耗时。

PHP 8.2 为这个问题引入了一个更好的解决方案——只读类。因此,当您将一个类声明为只读时,从那时起,该类中的所有属性都是只读的。

例如,不要这样写:

class LinuxDistros
{
    public function __construct(
        public readonly string $name, 
        public readonly string $package_manager,
        public readonly DateTimeImmutable $last_release_date,
    ) {}
}

您现在可以编写以下内容:

readonly class LinuxDistros
{
    public function __construct(
        public string $name, 
        public string $package_manager,
        DateTimeImmutable $last_release_date,
    ) {}
}

需要注意的是,如果子类也是只读的,则只能从只读类扩展。

新的独立类型

在 PHP 8.2 之前,只能使用 null、false 和 true 作为联合类型的一部分。因此,如果您尝试将它们声明为独立类型,则会导致致命错误。然而,PHP 8.2 现在支持使用 null、false 和 true 作为独立类型。

function returnFalse(): false
{
    return false;
}

同样的逻辑和适用性也适用于 true。同样的逻辑与适用性也同样适用于 true 和 null。也就是说,精确声明返回、参数和属性类型使PHP的类型系统更具表现力和完整性。

新的随机数扩展

历史上,PHP一直支持各种随机数生成器(RNG),其性能、用例和安全应用程序的适用性各不相同。

PHP 8.2 引入了一个新的随机数生成器,它解决了前一个生成器的许多问题:它性能更高,安全性更强。Randomizer 是一个接受随机化引擎的新类。nd 为空。换句话说,属性类型使 PHP 的类型系统更具表现力和完整性。

use Random/Randomizer;
$randomizer = new Randomizer();
$randomizer->shuffleBytes('BTW I Use Arch');

当然,你不限于字符串。您还可以随机化数组、数字等。

$randomizer->shuffleBytes(['a', 'b', 'c']);
$randomizer->getInt(0, 100);

此外,您可以根据自己的需求更改这个引擎。

其他

PHP 8.2还包括各种弃用。例如,${} 字符串插值以及 utf8_encode 和 utf8_decode 函数现在已被弃用。因此,当使用时,PHP 将生成一个弃用通知,该通知不应干扰充分配置的 PHP 应用程序,但会记录到错误日志中。

有关 PHP 8.2 中所有更改的详细信息,请参阅官方公告

The post PHP 8.2 正式发布:引入随机数扩展和只读类 first appeared on Linux迷.

版权声明:
作者:主机优惠
链接:https://www.techfm.club/p/37887.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>