Heim >Backend-Entwicklung >PHP-Tutorial >Warum wirft PHP den Fehler „Standardobjekt wird aus leerem Wert erstellt' aus?

Warum wirft PHP den Fehler „Standardobjekt wird aus leerem Wert erstellt' aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 21:31:10178Durchsuche

Why Does PHP Throw a

Den PHP-Fehler „Standardobjekt aus leerem Wert erstellen“ verstehen

PHPs Fehler „Standardobjekt aus leerem Wert erstellen“ tritt häufig auf, wenn Sie auf eine scheinbar nicht gesetzte Eigenschaft zugreifen Variable. Dieser Fehler ist ein Ergebnis der strengen Fehlerbehandlung von PHP in den Versionen 5.4 und höher.

Dieser Fehler wird ausgelöst, wenn PHP versucht, ein Standardobjekt für eine Variable zu initialisieren, die noch kein Objekt ist oder explizit auf NULL gesetzt ist. Zum Beispiel:

$res = NULL;
$res->success = false;

In PHP 5.3 und früher würde dieser Code keine Fehler erzeugen. In PHP-Versionen 5.4 und höher sind jedoch E_STRICT-Warnungen (oder E_WARNINGs, wenn Sie error_reporting mindestens auf diese Stufe eingestellt haben) aktiviert, was den Fehler „Standardobjekt aus leerem Wert erstellen“ verursacht.

Tut $res muss zuerst deklariert werden?

Nein, die Deklaration von $res als Objekt ist nicht erforderlich. Sie müssen jedoch sicherstellen, dass $res ein Objekt ist, bevor Sie auf seine Eigenschaften zugreifen. Dazu können Sie es entweder als Objekt einer bestimmten Klasse initialisieren oder das generische stdClass-Objekt verwenden:

// Initialize as a specific class
$res = new MyClassName();

// Initialize as a generic object
$res = new \stdClass();

Sobald $res ein Objekt ist, können Sie auf seine Eigenschaften zugreifen und diese ändern, ohne auf das „ Fehler beim Erstellen eines Standardobjekts aus einem leeren Wert.

$res->success = false; // No error

Das obige ist der detaillierte Inhalt vonWarum wirft PHP den Fehler „Standardobjekt wird aus leerem Wert erstellt' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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