Sie sind nicht das Gleiche, aber in Ihrer Verwendung kann das gleiche Ergebnis haben.
error_reporting
ist die Ebene der Berichterstattung, KEINE durch ALL. Dies bestimmt, welche Arten von Fehlern gemeldet werden (E_NOTICE, E_WARNING, E_ALL, etc ..).
display_errors
ist, ob diese Fehler (Ausgabe-Browser, CLI, etc ...) angezeigt werden, die von 1.
berichtet Wenn Sie error_reporting(E_ALL)
und ini_set('display_errors', '0')
einstellen können Sie alle Fehler immer noch berichtet in der Protokolldatei, aber nicht angezeigt.
Mit error_reporting(0)
erhalten Sie keine Fehler angezeigt oder im Protokoll und es spielt keine Rolle, die Werte von display_errors
.
display_errors
sollte in Ihren Produktionsanwendungen deaktiviert sein, vorzugsweise in php.ini
, so dass Informationen wie Dateipfade, Datenbanknamen und Benutzernamen nicht angezeigt werden. Fehlerberichte, die an das Protokoll gesendet werden, sind von Vorteil und sollten kein Sicherheitsrisiko darstellen.
Der einzige Unterschied ist [this] (http://in3.php.net/manual/en/errorfunc.configuration.php#ini.display-errors): "* Obwohl display_errors zur Laufzeit gesetzt werden kann (mit ini_set()), hat dies keine Auswirkungen, wenn das Skript schwerwiegende Fehler aufweist, da die gewünschte Laufzeitaktion nicht ausgeführt wird. * ". –
@AmalMurali - das gilt für beide Funktionen. PHP-Dateien werden vollständig analysiert, bevor Code in dieser Datei ausgeführt wird. Daher wird jede Funktion, die Sie zur Aktivierung der Fehlerberichterstattung verwenden, * nicht * ausgeführt, wenn in derselben Datei Parse-Fehler auftreten. –