Coding | Kunden und Leser | Queries

Was bedeutet “Trying to get property of non-object in…”?

grasshopper 193721

Befindet man sich auf einer WordPress Seite, bekommt man zum Beispiel die Inhalte eines “Post-Objektes” dargestellt. Ein Objekt kann Methoden (Funktionen) und Eigenschaften (Properties) haben, zum Beispiel hat ein post als Eigenschaft eine ID, einen Titel, einen Hauptinhalt und so weiter, eben alles, was zum Inhalt einer Seite oder eines Beitrags gehört.

Die Datenabfrage die eine solche Meldung erzeugt, geht generell davon aus, dass es das Objekt dessen Eigenschaften abgefragt werden gibt. Das ist jedoch bei Posts außerhalb des Mainloops nicht der Fall. Vertippt sich jemand bei der Eingabe des Links oder gerät auf eine Inhaltsseite, die es nicht mehr gibt (404 – Seite nicht gefunden), existiert kein Post-Objekt auf das sich die abgefragten Eigenschaften beziehen.

Wird diese Eventualität nicht abgefangen (zum Beispiel mit if ( !$post ) return; oder if ( $post ) { //dostuff...; }, führt der Aufruf von Elementen eines nicht vorhandenen Objekts zu dem Hinweis. Es ist nicht wirklich ein Fehler. Allerdings ist es für Entwickler die sich Meldungen dieser Art anzeigen lassen, um selbst keine zu erzeugen, hinderlich.

Außerdem kommt es gelegentlich vor, dass Webhosting-Pakete so konfiguriert sind, dass Meldungen öffentlich sichtbar sind. Wer dann nicht weiß, wie er diese Einstellung abstellen kann, hat sie dann auch für alle sichtbar im Wirkbetrieb. Daher ist es freundlich, dafür zu sorgen, dass immer abgefragt wird, ob das abgefragte Objekt auch tatsächlich existiert wenn die Möglichkeit besteht, dass jemand an eine Position geraten kann, auf der es das Objekt nicht gibt.

weiter schmökern

Schreibe einen Kommentar

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden.

Deine E-Mail-Adresse wird nicht veröffentlicht.