ホームページ  >  記事  >  バックエンド開発  >  PHP8 の新機能の例: 属性推論とコードを使用して重複コードを減らす方法?

PHP8 の新機能の例: 属性推論とコードを使用して重複コードを減らす方法?

王林
王林オリジナル
2023-09-12 19:15:27598ブラウズ

PHP8 の新機能の例: 属性推論とコードを使用して重複コードを減らす方法?

PHP8 は、2020 年 11 月 26 日に正式にリリースされた PHP プログラミング言語の最新バージョンです。 Web 開発で広く使用されている言語として、PHP8 は、プロパティ推論やコード削減機能など、多くのエキサイティングな新機能をもたらします。この記事では、これらの新機能の使用例をいくつか紹介します。

1. 属性の導出

過去の PHP バージョンでは、属性にアクセスして変更するには、クラス属性のゲッター メソッドとセッター メソッドを手動で定義する必要がありました。しかし、PHP8 では、属性推論を使用してこのプロセスを簡素化できます。

次の例を考えてみましょう。名前と年齢の 2 つの属性を含む Person クラスを作成します。

class Person {
    public string $name;
    public int $age;

    public function getName(): string {
        return $this->name;
    }

    public function setName(string $name): void {
        $this->name = $name;
    }

    public function getAge(): int {
        return $this->age;
    }

    public function setAge(int $age): void {
        $this->age = $age;
    }
}

PHP8 では、属性推論を使用してこのコードを簡素化できます。

class Person {
    public function __construct(
        public string $name,
        public int $age,
    ) {}
}

プロパティ推論を使用すると、クラスのプロパティをコンストラクターで直接定義でき、ゲッター メソッドとセッター メソッドの定義を省略できます。これで、次の方法で Person クラスをインスタンス化し、プロパティにアクセスできるようになります。

$person = new Person('John Doe', 25);
echo $person->name;  // 输出:John Doe
echo $person->age;  // 输出:25

ご覧のとおり、プロパティ派生を使用すると、コード構造が大幅に簡素化され、冗長なコードの記述が減ります。

2. コードの重複を減らす

PHP8 では、コードの重複を減らすために使用できるいくつかの新しい関数と関数も導入しました。これらの機能のうち 2 つ、名前付きパラメーターと null 合体演算子を以下に紹介します。

  1. 名前付きパラメータ

名前付きパラメータとは、関数またはメソッドが呼び出されるときに、パラメータ名を指定することでパラメータ値を渡すことができることを意味します。これにより、パラメータの場所への依存が減り、コードの可読性と保守性が向上します。

次の例を考えてみましょう。2 つの数値の合計を計算する関数があります:

function sum(int $a, int $b): int {
    return $a + $b;
}

echo sum(5, 10);  // 输出:15

以前のバージョンでは、関数の順序でパラメータ値を渡す必要がありました。定義されています。しかし、PHP8 では、名前付きパラメーターを使用して関数を呼び出すことができます。

echo sum(b: 5, a: 10);  // 输出:15

パラメーター名を指定すると、パラメーター値を任意の順序で渡すことができ、コードがより直観的で読みやすくなります。

  1. null 合体演算子

PHP では、変数が null かどうかを確認し、null の場合はデフォルト値を提供する必要があることがよくあります。以前のバージョンでは、通常、この機能を実現するために三項演算子または if ステートメントを使用していました。

変数が null かどうかを確認し、デフォルト値を指定する必要がある次の例を考えてみましょう。

$username = isset($_GET['username']) ? $_GET['username'] : 'Guest';

PHP8 では、null 合体演算子 (??) を使用して、次のことを行うことができます。このコード スニペットを簡略化します:

$username = $_GET['username'] ?? 'Guest';

$_GET['username'] が null でない場合は、その値を $username に割り当てます。それ以外の場合は、'Guest' を $username に割り当てます。

上記の例に加えて、PHP8 では、一致式、静的な戻り値の型宣言など、他のいくつかの新機能も導入されています。これらの機能により、PHP の機能と柔軟性が大幅に向上しました。

概要:

この記事では、PHP8 の 2 つの新機能、属性導出と重複コードのコード削減を紹介します。プロパティの派生により、クラス プロパティの定義がより簡潔かつ直感的になり、冗長なゲッター メソッドとセッター メソッドの記述が削減されます。名前付きパラメータと null 合体演算子の 2 つの機能により、コードの可読性と保守性が向上します。 PHP8 のリリースにより、簡潔で効率的な PHP コードをより簡単に作成できるようになります。

以上がPHP8 の新機能の例: 属性推論とコードを使用して重複コードを減らす方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。