„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 > Wie behebt man den Fehler „Auf die typisierte Eigenschaft darf vor der Initialisierung nicht zugegriffen werden“ in PHP?

Wie behebt man den Fehler „Auf die typisierte Eigenschaft darf vor der Initialisierung nicht zugegriffen werden“ in PHP?

Veröffentlicht am 23.12.2024
Durchsuche:161

How to Fix the \

Den Fehler „Auf typisierte Eigenschaften darf vor der Initialisierung nicht zugegriffen werden“ verstehen

Mit der Einführung von Eigenschaftstyphinweisen in PHP 7.4 ist es wichtig, ihnen gültige Werte zuzuweisen Alle Eigenschaften, um sicherzustellen, dass ihre deklarierten Typen respektiert werden. Eine undefinierte Eigenschaft ohne zugewiesenen Wert stimmt nicht mit einem deklarierten Typ überein und löst die Fehlermeldung aus: „Auf die typisierte Eigenschaft darf vor der Initialisierung nicht zugegriffen werden.“

Bedenken Sie beispielsweise den folgenden Code:

class Foo {
    private string $val;

    public function __construct(int $id) {
        $this->id = $id;
    }

    public function getVal(): string { return $this->val; }
}

Der Zugriff auf $val nach der Erstellung von Foo würde zu einem Fehler führen, da sein Typ noch nicht definiert ist (undefiniert! == null).

Um dieses Problem zu beheben, weisen Sie währenddessen allen Eigenschaften Werte zu Konstruktion oder legen Sie Standardwerte für sie fest:

class Foo {
    private string $val = null;  // default null value

    public function __construct(int $id) {
        $this->id = $id;
    }
}

Jetzt verfügen alle Eigenschaften über gültige Werte, wodurch der Fehler behoben wird.

Dieses Problem kann auch auftreten, wenn Sie sich auf Datenbankwerte für Entitätseigenschaften verlassen, wie z. B. automatisch generierte IDs oder Zeitstempel. Deklarieren Sie automatisch generierte IDs als nullfähig:

private ?int $id = null;

Wählen Sie für alle anderen die entsprechenden Standardwerte aus, die ihren Typen entsprechen.

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