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

grasshopper 193721
Bildquelle: Pixabay, realworkhard

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.

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable