蓝狮注册登陆现在应该开始使用的 10 个 PHP 8.1 功能

php 8.1 现已推出,它附带了新功能和性能改进 —— 最令人兴奋的是新的 JIT 编译器。它于 2021 年 11 月 25 日发布。

我们将详细演示 PHP 8.1 提供的 10 大特性,以便您可以开始在您的项目中使用它们,并改善您的 PHP 体验。初学者和有经验的开发人员可以从本文中受益。

8.1 提供的 10 大功能
枚举

Fiber(纤维)

never 返回类型

readonly 属性

final 类常量

新的 array_is_list() 函数

新的 fsync() 和 fdatasync() 函数

对字符串键数组解包的支持

$_FILES 新的用于目录上传的 full_path 键

新的 IntlDatePatternGenerator 类

  1. 枚举
    PHP 8.1 添加了对枚举的支持,简写为 enum 。它是一种逐项类型,包含固定数量的可能值。请参阅以下代码片段以了解如何使用枚举。

‘ followed by the attribute ‘name’. */ echo UserRole::WRITER->name; /** * To get the value of the enum case, you can * use the ‘->’ followed by the attribute ‘value’. */ echo UserRole::WRITER->value; ?> 2. Fiber(纤维) PHP 8.1 添加了对 Fiber 的支持,这是一个低级组件,蓝狮注册登陆允许在 PHP 中执行并发代码。Fiber 是一个代码块,它包含自己的变量和状态堆栈。这些 Fiber 可以被视为应用程序线程,可以从主程序启动。 一旦启动,主程序将无法挂起或终止 Fiber。它只能从 Fiber 代码块内部暂停<或终止。在 Fiber 挂起后,控制权再次返回到主程序,它可以从挂起的点继续执行 Fiber。 Fiber 本身不允许同时执行多个 Fiber 或主线程和一个 Fiber。但是,对于 PHP 框架来说,高效管理执行堆栈并允许异步执行是一个巨大的优势。 请参阅以下代码片段以了解如何使用 Fiber。 start(); /** * Fiber has been suspened from the inside. * Print some message, and then resume the Fiber. */ echo “Fiber has been suspended\n”; echo “Resuming the Fiber\n”; /** * Resume the Fiber. */ $fiber->resume(); /** * End of the example. */ echo “Fiber completed execution\n”; ?> 3.never 返回类型 PHP 8.1 添加了名为 never 的返回类型。该 never 类型可用于指示函数将在执行一组指定的任务后终止程序执行。这可以通过抛出异常、调用 exit() 或 die() 函数来完成。 never 返回类型类似于 void 返回类型。但是,蓝狮注册开户void 返回类型在函数完成一组指定的任务后继续执行。 请参阅以下代码片段以了解如何使用 never 返回类型。 * @access public * @return never */ public static function redirect($url, $httpCode = 301): never { /** * Redirect to the URL specified. */ header(“Location: {$url}”, true, $httpCode); die; } } Route::redirect(‘https://www.google.com’); ?> 4.readonly 属性 PHP 8.1 添加了名为 readonly 的类属性。已声明为只读的类属性只能初始化一次。里面设置的值不能改变。如果尝试强行更新该值,应用程序将抛出错误。请参阅以下代码片段以了解如何使用只读属性。 authUserID = $userID; } /** * Update Auth User ID * This function tries to update the readonly property (which is not allowed). * @method updateAuthUserID() * @param integer $userID * @author Tara Prasad Routray * @access public * @return void */ public function updateAuthUserID($userID) { /** * Change the value of the property as specified. * Executing this function will throw the following error; * PHP Fatal error: Uncaught Error: Cannot modify readonly property User::$authUserID */ $this->authUserID = $userID; } } /** * Initialize the class and update the value of the readonly property. */ $user = new User(30); /** * Print the readonly property value. * This will print 30. */ echo $user->authUserID; /** * Call another function inside the class and try to update the class property. */ $user->updateAuthUserID(50); /** * Print the readonly property value. */ echo $user->authUserID; ?>

0 Comments
Leave a Reply