


Warum erhalte ich in PHP den Fehler „Auf die typisierte Eigenschaft darf vor der Initialisierung nicht zugegriffen werden'?
Fehler „Auf typisierte Eigenschaften darf vor der Initialisierung nicht zugegriffen werden“ nach dem Hinzufügen von Eigenschaftstyphinweisen
Bei der Einführung von Eigenschaftstyphinweisen in Ihre PHP-Klassen kann ein Fehler auftreten, der besagt , „Auf die typisierte Eigenschaft darf vor der Initialisierung nicht zugegriffen werden.“ Dieser Fehler tritt auf, wenn auf eine Eigenschaft zugegriffen wird, bevor sie mit einem gültigen Wert initialisiert wurde, der ihrem deklarierten Typ entspricht.
Ursache
Gemäß PHP 7.4s Typhinweis für Eigenschaften müssen alle Eigenschaften haben Werte, die ihren deklarierten Typen entsprechen. Eine nicht zugewiesene Eigenschaft befindet sich in einem undefinierten Zustand und stimmt mit keinem deklarierten Typ überein, auch nicht mit null.
Beispiel
Betrachten Sie den folgenden Code:
class Foo { private int $id; private ?string $val; private DateTimeInterface $createdAt; private ?DateTimeInterface $updatedAt; // Getters and setters omitted for brevity... } $f = new Foo(1); $f->getVal(); // Error: Typed property Foo::$val must not be accessed before initialization
In diesem Beispiel Wenn Sie auf die Eigenschaft $val zugreifen, ohne ihr zunächst eine Zeichenfolge oder einen Nullwert zuzuweisen, wird eine ausgelöst Fehler.
Lösung
Standardwerte:
Sie können Eigenschaften während der Deklaration Standardwerte zuweisen:
class Foo { private ?string $val = null; // Default null value for optional property }
Konstruktor-Initialisierung:
Eigenschaften in initialisieren Konstruktor:
class Foo { public function __construct(int $id) { // Assign values to all properties $this->id = $id; $this->createdAt = new DateTimeImmutable(); $this->updatedAt = new DateTimeImmutable(); } }
Nullable Types:
Deklarieren Sie optionale Eigenschaften als nullable:
private ?int $id;
DB Generated Values (Automatisch generierte IDs):
Verwenden Sie nullfähige Typen für Eigenschaften, die von initialisiert werden die Datenbank:
private ?int $id = null;
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in PHP den Fehler „Auf die typisierte Eigenschaft darf vor der Initialisierung nicht zugegriffen werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon

Ankündigung von 2025 PHP Situation Survey
