Heim > Backend-Entwicklung > PHP-Tutorial > 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?

DDD
Freigeben: 2024-11-20 04:52:02
Original
360 Leute haben es durchsucht

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 von entscheidender Bedeutung, 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; }
}
Nach dem Login kopieren

Der Zugriff auf $val nach der Konstruktion 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 allen Eigenschaften während der Konstruktion Werte zu 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;
    }
}
Nach dem Login kopieren

Jetzt haben alle Eigenschaften gültige Werte, wodurch der Fehler behoben wird.

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

private ?int $id = null;
Nach dem Login kopieren

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

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Auf die typisierte Eigenschaft darf vor der Initialisierung nicht zugegriffen werden' in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage