Frage

Ich bin mit PHP 4, der einzige Weg, den ich kenne, um einen Fehler zu verursachen und stoppen alles ruft die (). Aber für den Fall laufe ich in den Fehler später und kann mich nicht erinnern, wo seine Herkunft aus möchte ich die Seite und die Zeilennummer angeben, die der Form () trat auf (wie auch andere PHP-Fehler zu tun). Gibt es eine Möglichkeit, dies zu tun?

Danke!

War es hilfreich?

Lösung

Sie sollten die magische Konstanten suchen.

echo __LINE__; // Line number

Sie können auch laufen error_log () Fehler senden leise in das Protokoll.

Andere Tipps

Ich denke, Sie sollten trigger_error () ein E_USER_ERROR oder E_USER_WARNING erzeugen. Auf diese Weise können Sie das Verhalten im Detail steuern. Zum Beispiel können Sie festlegen, ob die Nachrichten an alle mit error_reporting () oder die E_USER_WARNING Griff : s. unter Verwendung von set_error_handler explizit ()

Der einfachste Weg ist die Verwendung:

echo __FILE__ . ": line " . __LINE__;
die();

Wenn Sie PHP5 verwenden würden, könnten Sie auch Ausnahmen verwenden:

throw new Exception("My error message!");

Der Stack-Trace wird den gesamten Call-Stack und die Leitung dieses wurde geworfen.

offenbare

(EDIT: Dank [@ John Isaacs] und [@Emil H] für mich darüber informiert, dass Ausnahmen nicht bis PHP5 PHP wurden hinzugefügt)

Neben @Jukka Dahlbom und @ Ólafur Waage Vorschläge könnten Sie auch mit berücksichtigen debug_backtrace() .

Bessere Nutzung error_log() einen Fehler melden und debug_backtrace() für das Debuggen. Sie können auch Ihre eigene Fehlerbehandlung Funktion schreiben (siehe set_error_handler() ), beide zu kombinieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top