| |

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.

Schreibe einen Kommentar

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