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

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

Sep 12, 2023 pm 07:15 PM
プロパティの導出コードの重複を減らす

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。