„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Ein Leitfaden für Anfänger zur Förderung von Konstruktoreigenschaften in PHP

Ein Leitfaden für Anfänger zur Förderung von Konstruktoreigenschaften in PHP

Veröffentlicht am 08.11.2024
Durchsuche:781

A Beginner’s Guide to Constructor Property Promotion in PHP

PHP 8 führte eine fantastische Funktion namens Constructor Property Promotion ein. Wenn Sie mit PHP oder dem Programmieren im Allgemeinen noch nicht vertraut sind, klingt das vielleicht etwas komplex. Aber keine Sorge! In diesem Blog erfahren Sie anhand zahlreicher Codierungsbeispiele, was es ist, warum es nützlich ist und wie Sie es verwenden können. Fangen wir an!

Was ist die Förderung von Bauträgerimmobilien?

Vor PHP 8 erforderte das Erstellen einer Klasse mit Eigenschaften und deren Initialisierung in einem Konstruktor ziemlich viel sich wiederholenden Code. Mit der Constructor Property Promotion vereinfacht PHP 8 diesen Prozess, indem Sie Klasseneigenschaften direkt in den Konstruktorparametern deklarieren und initialisieren können.

Warum sollte es Sie interessieren?

Bei der Förderung von Constructor-Eigenschaften geht es nicht nur darum, ein paar Codezeilen einzusparen – es geht darum, Ihren Code sauberer, leichter lesbar und einfacher zu warten. Dies ist besonders wertvoll für Anfänger, die die traditionelle Art, Konstruktoren zu schreiben, möglicherweise etwas entmutigend finden.

Traditioneller Weg vs. Bauherren-Immobilienförderung

Beginnen wir mit dem Vergleich der traditionellen Art, Klassen und Konstruktoren zu schreiben, mit der neuen Art, die in PHP 8 eingeführt wurde.

Vor PHP 8 (traditionelle Methode)

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);

In diesem Beispiel müssen wir die Eigenschaften ($make, $model und $year) deklarieren und sie dann innerhalb des Konstruktors zuweisen. Es gibt viele Wiederholungen, insbesondere wenn es sich um Klassen handelt, die viele Eigenschaften haben.

Mit PHP 8 (Constructor Property Promotion)

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

$car = new Car('Toyota', 'Corolla', 2020);

Mit Constructor Property Promotion deklarieren und weisen Sie die Eigenschaften in den Konstruktorparametern zu. Das Ergebnis ist eine prägnantere und lesbarere Klassendefinition.

Weitere Codierungsbeispiele

Um die Leistungsfähigkeit der Constructor Property Promotion vollständig zu verstehen, schauen wir uns weitere Beispiele in verschiedenen Szenarien an.

Beispiel 1: Definieren einer Buchklasse

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)

In dieser Book-Klasse hat die Eigenschaft isAvailable den Standardwert true. Wenn Sie diesen Parameter beim Erstellen einer Instanz der Klasse nicht angeben, wird er automatisch auf true gesetzt.

Beispiel 2: Erstellen einer Auftragsklasse

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

Hier enthält die Order-Klasse eine Statuseigenschaft mit dem Standardwert „pending“. Sie können diesen Wert jedoch überschreiben, indem Sie beim Erstellen der Bestellung einen anderen Status angeben.

Beispiel 3: Erstellen einer Benutzerprofilklasse

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', '[email protected]', 25, 'secret');
echo $userProfile->username; // Output: johndoe
echo $userProfile->getPassword(); // Output: secret
echo $userProfile->role; // Error: Cannot access protected property

In der UserProfile-Klasse ist die Passworteigenschaft privat, was bedeutet, dass außerhalb der Klasse nicht direkt darauf zugegriffen werden kann. Stattdessen verwenden Sie die Methode getPassword(), um es abzurufen. Die Rolleneigenschaft ist geschützt, sodass auf sie nur innerhalb der Klasse selbst oder durch Unterklassen zugegriffen werden kann.

Beispiel 4: Eine Produktklasse mit Konstruktor-Eigenschaftsförderung

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

Dieses Beispiel zeigt, wie Sie mit Constructor Property Promotion eine Produktklasse erstellen können, die einen Standardwert für die Aktieneigenschaft enthält.

Vorteile der Immobilienförderung für Bauunternehmer

  1. **Weniger Boilerplate-Code: **Sie müssen keinen sich wiederholenden Code schreiben, um Eigenschaften zu deklarieren und zu initialisieren.

  2. Erhöhte Lesbarkeit: Die Klassendefinition ist prägnanter und auf einen Blick leichter verständlich.

  3. Reduzierte Fehler: Durch die Kombination von Eigenschaftsdeklaration und Initialisierung gibt es weniger Raum für Fehler.

Abschluss

Constructor Property Promotion in PHP 8 ist eine leistungsstarke Funktion, die die Art und Weise, wie Sie Klassen schreiben, erheblich verbessern kann. Durch die Reduzierung des Boilerplate-Codes, die Verbesserung der Lesbarkeit und die Wartbarkeit Ihres Codes ist es eine Funktion, die sowohl neue als auch erfahrene Entwickler zu schätzen wissen.

Ob Sie ein kleines Projekt oder eine große Anwendung erstellen, Constructor Property Promotion hilft Ihnen, saubereren und effizienteren PHP-Code zu schreiben. Probieren Sie es also bei Ihrem nächsten Projekt aus und genießen Sie die Vorteile dieser tollen Funktion!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/asfiaaiman/a-beginners-guide-to-constructor-property-promotion-in-php-5p1?1 Bei Verstößen wenden Sie sich bitte an [email protected] um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3