PHP: Fataler Fehler (Aufruf der Member-Funktion eines Nicht-Objekts)

8

Manchmal kann mein Skript die Ausgabe eines Servers nicht lesen und der folgende Fehler tritt auf:

PHP Fatal error: Call to a member function somefun() on a non-object

Dies ist nicht etwas, das nicht an meinem Ende behoben werden kann, aber das führt dazu, dass mein Skript abstürzt. Gibt es eine Möglichkeit, eine Funktion zu erstellen, die ausgeführt wird, wenn dieser bestimmte Fehler auftritt? Ich denke nicht, dass es praktisch ist, einen try-catch oder ähnliches zu machen, da ich jedes Mal, wenn eine Mitgliedsfunktion aufgerufen wird, finden muss, um zu testen, ob das Objekt existiert oder nicht (mehrere tausend).

    
dukevin 15.07.2012, 03:48
quelle

3 Antworten

13

In PHP 7

Ja, fangen Sie einen "Error" -Wurf, siehe Ссылка

Demo: Ссылка

%Vor%

In PHP 5

  

Gibt es eine Möglichkeit, eine Funktion zu erstellen, die ausgeführt wird, wenn dieser bestimmte Fehler auftritt?

Ja, Sie können " register_shutdown_function " verwenden, um PHP dazu zu bringen, eine Funktion aufzurufen kurz bevor es nach dem Auftreten dieses Fehlers stirbt.

  

PHP: Fataler Fehler (Aufruf der Member-Funktion auf einem Nicht-Objekt)

Es ist nicht möglich, diesen Fehler zu beheben, wenn Sie das mit "catch" meinen, da PHP "Aufruf einer Member-Funktion auf einem Nicht-Objekt" als "fatalen" Fehler definiert hat. Siehe PHP, um die Funktion "Aufruf einer Member-Funktion auf einem Nicht-Objekt" in eine Ausnahme zu schalten , um eine Diskussion darüber zu führen, warum dies der Fall sein könnte.

    
Rich 19.03.2013, 17:03
quelle
-1

Probieren Sie function_exists aus, um zu überprüfen, ob die Funktion existiert:

%Vor%

oder verwenden Sie method_exists , um die Klassenmethode zu validieren.

    
Habibillah 15.07.2012 03:59
quelle
-1

Sie könnten nach Ссылка suchen. Sie müssten Ihren eigenen Fehlerhandler schreiben und den Fehlercode überprüfen, ob Sie den Fehler anzeigen möchten oder nicht.

    
PhilMasterG 15.07.2012 04:01
quelle

Tags und Links