650 Stimmen

Wie kann ich nützliche Fehlermeldungen in PHP erhalten?

Oft versuche ich, ein PHP-Skript auszuführen, und erhalte nur einen leeren Bildschirm zurück. Keine Fehlermeldung, nur ein leerer Bildschirm. Die Ursache könnte ein einfacher Syntaxfehler (falsche Klammer, fehlendes Semikolon), ein fehlgeschlagener Funktionsaufruf oder etwas ganz anderes sein.

Es ist sehr schwierig, herauszufinden, was schief gelaufen ist. Am Ende muss ich Code auskommentieren, überall "echo"-Anweisungen eingeben usw., um das Problem einzugrenzen. Aber es muss doch einen besseren Weg geben, oder?

Gibt es eine Möglichkeit, PHP dazu zu bringen, eine nützliche Fehlermeldung auszugeben, wie es Java tut?

1 Stimmen

5 Stimmen

@JuannStrauss, Das ist noch untertrieben. Und wenn Sie schließlich siehe die Fehler, es heißt T_PAAMAYIM_NEKUDOTAYIM . Oder vielleicht "muss eine Instanz von integer sein, integer gegeben" .

2 Stimmen

16voto

Abuzer Firdousi Punkte 1524
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

15voto

Ondřej Šotek Punkte 1711

Ich empfehle Nette Tracy zur besseren Visualisierung von Fehlern und Ausnahmen in PHP:

Nette Tracy screenshot

3 Stimmen

Tracy kümmert sich um die korrekte Einstellung aller Optionen für die Anzeige von Fehlern und die Fehlerberichterstattung, um in solchen Situationen, wie im ursprünglichen Beitrag beschrieben, eine Ausgabe zu liefern... Dieses Tool ist also besonders hilfreich für die Frage "Kann jemand gute PHP-Debugging-Tipps, Tools und Techniken empfehlen?".

15voto

Yan.Zero Punkte 449
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
ini_set('html_errors', 1);

Darüber hinaus können Sie detailliertere Informationen erhalten mit xdebug .

0 Stimmen

Xdebug kann in der php.ini aktiviert werden

10voto

soulmerge Punkte 70900

Sie können Ihre eigene Registrierung vornehmen Fehlerbehandlungsroutine in PHP. Alle Fehler in eine Datei zu schreiben, könnte Ihnen zum Beispiel in diesen obskuren Fällen helfen. Beachten Sie, dass Ihre Funktion aufgerufen wird, unabhängig davon, was Ihre aktuelle fehler_berichterstattung eingestellt ist. Sehr einfaches Beispiel:

function dump_error_to_file($errno, $errstr) {
    file_put_contents('/tmp/php-errors', date('Y-m-d H:i:s - ') . $errstr, FILE_APPEND);
}
set_error_handler('dump_error_to_file');

10voto

Ólafur Waage Punkte 66497
error_reporting(E_ALL | E_STRICT);

Und schalten Sie die Fehleranzeige in der php.ini ein

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X