Während der PHP-Entwicklung begegnen wir häufig auf verschiedene Fehler und Ausnahmen. Der häufigste Fehler ist: "Fataler Fehler: Rufen Sie eine Mitgliedsfunktion auf einem Nicht-Objekt auf". Dieser Fehler tritt normalerweise auf, wenn versucht wird, eine Methode auf einem Nicht-Objekt aufzurufen. In diesem Artikel werden die Ursachen dieses Fehlers, gemeinsamen Lösungen und der effektiven Debugie für diese Art von Fehler vorgestellt.
Lassen Sie uns zunächst die Erzeugung dieses Fehlers durch ein einfaches Code -Beispiel verstehen:
Klasse myclass { öffentliche Funktion myMethod () { echo "Hallo, das ist meine Methode!"; } } $ myObject = null; $ myObject-> myMethod (); // Fatal Fehler werden hier ausgelöst
Im obigen Beispiel definieren wir eine Klassenmyklasse und eine Methode, die MyMethod in dieser Klasse definiert ist. Als nächstes setzen wir die Variable $ myObject in Null und versuchen, seine Methode MyMethod zu nennen. Da $ myObject kein gültiges Objekt ist, wird bei dem Aufrufen der Methode der Fehler "Fatal Fehler: Aufrufen einer Mitgliedsfunktion auf einem Nicht-Objekt" -Fehler ausgelöst.
Um dieses Problem zu beheben, müssen wir sicherstellen, dass das Zielobjekt vor dem Aufrufen der Methode korrekt instanziiert ist. Hier sind einige häufig verwendete Lösungen:
if ($ myObject! = null) { $ myObject-> myMethod (); }
Mit einer einfachen Null -Prüfung können wir sicherstellen, dass das Objekt instanziiert wurde und vermeiden, Methoden zu rufen, wenn es null ist.
if (isset ($ myObject)) { $ myObject-> myMethod (); }
Die ISSET -Funktion prüft, ob das Objekt festgelegt ist und nicht null. Verwenden Sie diese Methode, um zu bestätigen, ob das Objekt vor dem Aufrufen der Methode gültig ist.
if (! leer ($ myObject)) { $ myObject-> myMethod (); }
Die leere Funktion kann überprüfen, ob das Objekt leer ist. Mit dieser Methode können wir auch vermeiden, Methodenaufrufe zu tätigen, wenn das Objekt leer ist.
Abgesehen von den oben genannten Methoden besteht die unkomplizierteste Lösung darin, sicherzustellen, dass das Objekt vor dem Aufrufen der Methode korrekt instanziiert wird:
$ myObject = new MyClass (); $ myObject-> myMethod ();
Durch die Instanziierung des Objekts vor dem Aufrufen der Methode können wir sicherstellen, dass das Objekt ein gültiges Objekt ist, wodurch fehlerähnliche Ereignisse vermieden werden.
Der Fehler "Fatal Fehler: Aufrufen einer Mitgliedsfunktion auf einem Nicht-Objekt" -Fehler in PHP wird normalerweise durch Aufrufen einer Methode verursacht, die kein Objekt instanziiert. Um dieses Problem zu lösen, können wir ein Urteil fällen, indem wir prüfen, ob das Objekt leer ist, indem wir ISSET- oder Leerfunktionen verwenden, und sicherzustellen, dass das Objekt vor dem Aufrufen der Methode korrekt instanziiert ist. Wenn ähnliche Fehler auftreten, ist es außerdem sehr wichtig, rechtzeitig zu debuggen und zu beheben.