ホームページ > バックエンド開発 > PHP8 > PHP8の新機能を例を挙げて説明する

PHP8の新機能を例を挙げて説明する

藏色散人
リリース: 2023-02-17 12:24:01
転載
3562 人が閲覧しました

この記事では、PHP8 の新しい特徴的な解釈と例を紹介します。困っている友人の役に立てば幸いです。

PHP8.0 の新機能の解釈と例

新しい名前付きパラメータ関数

名前付きパラメータとは何ですか?
は名前付きパラメータです。関数を呼び出すときに、パラメータ名を指定できます。パラメータ名を指定した後、元の関数パラメータをインストールせずに、パラメータの順序を順番に渡すことができます。 :

  <?php      /**
       * 计算余额方法
       * @param $amount 账户金额
       * @param $payment 支出金额
       * @return $balance = $amount-$payment 余额
       */
      function balance($amount, $payment)
      {
          return $amount - $payment;
      }
      //传统方式调用
      balance(100, 20);
      //php8 使用命名参数调用
      balance(amount: 100, payment: 20);
      //也可以换个顺序,这样来
      balance(payment: 20, amount: 100);
ログイン後にコピー

アノテーション機能

アノテーションとは何ですか?コードに直接アクセスし、最後に

例:

#[Attribute]class PrintSomeThing{
  public function __construct($str = &#39;&#39;)
  {
     echo sprintf("打印字符串 %s \n", $str);
  }}#[PrintSomeThing("hello world")]class AnotherThing{}// 使用反射读取住解$reflectionClass = new ReflectionClass(AnotherThing::class);$attributes = $reflectionClass->getAttributes();foreach($attributes as $attribute) {
  $attribute->newInstance(); //获取注解实例的时候,会输出 ‘打印字符串 Hello world’}
ログイン後にコピー
アノテーション関数の個人的な理解のまとめ アノテーションを使用すると、分離度が低く、凝集度が高いクラスをメタデータに定義できます。 。利用時にはアノテーションを介して柔軟に導入でき、アノテーションを付けたクラスインスタンスを反映させることで呼び出し目的を達成できます。

#**アノテーション付きクラスは、インスタンス化されたときにのみ呼び出されます


コンストラクター プロパティのプロモーション

Whatということは、クラス属性の修飾子スコープをコンストラクターで宣言できるということです。
例:
<?php
    // php8之前
    class User
    {
        protected string $name;
        protected int $age;
        public function __construct(string $name, int $age)
        {
            $this->name = $name;
            $this->age = $age;
        }
    }
    //php8写法,
    class User
    {
        public function __construct(
            protected string $name,
            protected int $age
        ) {}
    }
ログイン後にコピー

コードの量が節約され、クラス属性を個別に宣言する必要がありません。

#ユニオン型
パラメータの型が不明なシナリオでは、これを使用できます。

例:

    function printSomeThing(string|int $value)
    {
        var_dump($value);
    }
ログイン後にコピー

一致式
はスイッチ キャッシュに似ていますが、厳密な === 一致

例:

<?php$key = &#39;b&#39;;$str = match($key) {
    &#39;a&#39; => 'this a',
    'c' => 'this c',
     0  => 'this 0',
    'b' => 'last b',};echo $str;//输出 last b
ログイン後にコピー

##新しい Nullsafe 演算子
<?php
   class User
   {
       public function __construct(private string $name)
       {
           //啥也不干
       }
       public function getName()
       {
           return $this->name;
       }
    }
    //不实例 User 类,设置为null
    $user = null;
   echo $user->getName();//php8之前调用,报错
   echo $user?->getName();//php8调用,不报错,返回空
ログイン後にコピー
簡素化された is_null 判定

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHP8の新機能を例を挙げて説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート