PHP でのコンストラクター プロパティのプロモーションに関する初心者ガイド

WBOY
リリース: 2024-08-25 06:41:42
オリジナル
559 人が閲覧しました

A Beginner’s Guide to Constructor Property Promotion in PHP

PHP 8 では、コンストラクター プロパティのプロモーション と呼ばれる素晴らしい機能が導入されました。 PHP やプログラミング全般に慣れていない場合、これは少し複雑に聞こえるかもしれません。でも心配しないでください。このブログでは、これが何であるか、なぜ役立つのか、豊富なコーディング例とともにその使用方法を説明します。始めましょう!

コンストラクタープロパティプロモーションとは何ですか?

PHP 8 より前では、プロパティを含むクラスを作成し、コンストラクターでそれらを初期化するには、かなりの量の繰り返しコードが必要でした。 コンストラクター プロパティのプロモーション を使用すると、PHP 8 では、コンストラクター パラメーターでクラス プロパティを直接宣言して初期化できるようになり、このプロセスが簡素化されます。

なぜ気にする必要があるのでしょうか?

コンストラクター プロパティのプロモーションは、コードを数行節約するだけではなく、コードをよりクリーンに、読みやすく、保守しやすくすることを目的としています。これは、コンストラクターの従来の記述方法が少し難しいと感じる初心者にとって特に価値があります。

従来の方法とコンストラクターのプロパティのプロモーション

クラスとコンストラクターの従来の記述方法と、PHP 8 で導入された新しい方法を比較することから始めましょう。

PHP 8 以前 (従来の方法)

class Car {
    public string $make;
    public string $model;
    public int $year;

    public function __construct(string $make, string $model, int $year) {
        $this->make = $make;
        $this->model = $model;
        $this->year = $year;
    }
}

$car = new Car('Toyota', 'Corolla', 2020);
ログイン後にコピー

この例では、プロパティ ($make、$model、$year) を宣言し、コンストラクター内でそれらを割り当てる必要があります。特に多くのプロパティを持つクラスを扱う場合は、繰り返しが多くなります。

PHP 8 の場合 (コンストラクター プロパティのプロモーション)

class Car {
    public function __construct(
        public string $make,
        public string $model,
        public int $year
    ) {}
}

$car = new Car('Toyota', 'Corolla', 2020);
ログイン後にコピー

コンストラクター プロパティのプロモーションでは、コンストラクター パラメーターでプロパティを宣言して割り当てます。その結果、より簡潔で読みやすいクラス定義が得られます。

その他のコーディング例

コンストラクター プロパティ プロモーションの力を完全に理解するために、さまざまなシナリオでさらに多くの例を検討してみましょう。

例 1: Book クラスの定義

class Book {
    public function __construct(
        public string $title,
        public string $author,
        public int $pages,
        public bool $isAvailable = true
    ) {}
}

$book = new Book('1984', 'George Orwell', 328);
echo $book->title; // Output: 1984
echo $book->isAvailable; // Output: 1 (true)
ログイン後にコピー

この Book クラスでは、isAvailable プロパティのデフォルト値は true です。クラスのインスタンスを作成するときにこのパラメーターを指定しない場合、自動的に true に設定されます。

例 2: オーダー クラスの作成

class Order {
    public function __construct(
        public int $orderId,
        public string $product,
        public float $price,
        public string $status = 'pending'
    ) {}
}

$order = new Order(123, 'Laptop', 999.99);
echo $order->status; // Output: pending

$order2 = new Order(124, 'Smartphone', 599.99, 'shipped');
echo $order2->status; // Output: shipped

ログイン後にコピー

ここで、Order クラスには、デフォルト値が pending の status プロパティが含まれています。ただし、注文の作成時に別のステータスを指定することで、この値をオーバーライドできます。

例 3: ユーザー プロファイル クラスの構築

class UserProfile {
    public function __construct(
        public string $username,
        public string $email,
        public int $age,
        private string $password,
        protected string $role = 'user'
    ) {}

    public function getPassword(): string {
        return $this->password;
    }
}

$userProfile = new UserProfile('johndoe', 'john@example.com', 25, 'secret');
echo $userProfile->username; // Output: johndoe
echo $userProfile->getPassword(); // Output: secret
echo $userProfile->role; // Error: Cannot access protected property
ログイン後にコピー

UserProfile クラスでは、パスワード プロパティはプライベートです。つまり、クラスの外部から直接アクセスすることはできません。代わりに、getPassword() メソッドを使用して取得します。ロール プロパティは保護されているため、クラス自体内またはサブクラスからのみアクセスできます。

例 4: コンストラクター プロパティのプロモーションを使用した製品クラス

class Product {
    public function __construct(
        public string $name,
        public float $price,
        public int $stock = 0
    ) {}
}

$product = new Product('Laptop', 999.99, 10);
echo $product->name; // Output: Laptop
echo $product->stock; // Output: 10

ログイン後にコピー

この例では、コンストラクター プロパティ プロモーションを使用して、株式プロパティのデフォルト値を含む Product クラスを作成する方法を示します。

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

  1. **定型コードの削減: **プロパティを宣言して初期化するために繰り返しコードを記述する必要はありません。

  2. 可読性の向上: クラス定義がより簡潔になり、一目で理解しやすくなりました。

  3. エラーの削減: プロパティの宣言と初期化を組み合わせることで、間違いが発生する余地が少なくなります。

結論

PHP 8 のコンストラクター プロパティのプロモーションは、クラスの記述方法を大幅に改善できる強力な機能です。定型コードを削減し、可読性を高め、コードをより保守しやすくすることにより、初心者と経験豊富な開発者の両方が高く評価する機能です。

小規模なプロジェクトを構築する場合でも、大規模なアプリケーションを構築する場合でも、コンストラクター プロパティのプロモーションは、よりクリーンで効率的な PHP コードを作成するのに役立ちます。ぜひ、次のプロジェクトで試してみて、この素晴らしい機能のメリットを楽しんでください!

以上がPHP でのコンストラクター プロパティのプロモーションに関する初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!