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; } }
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; } }
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;
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!