Alle Fehler in PHP anzeigen
-
Verwenden Sie die Funktion
error_reporting('E_ALL')
und die Funktionini_set()
zusammen mit der Anweisungdisplay_errors
, um einen Warnfehler anzuzeigen -
Verwendung der Funktion
error_reporting('-1')
und der Funktionini_set()
zusammen mit den Direktivendisplay_errors
unddisplay_startup_errors
zur Fehleranzeige -
Ändern Sie die Anweisungen in der Datei
php.ini
, um alle Fehler anzuzeigen, einschließlich Analysefehler in PHP
Wir werden eine Möglichkeit vorstellen, Fehler im PHP-Skript mit der Funktion error_reporting()
und der Funktion ini_set()
anzuzeigen. Die erste Methode meldet den Fehler, während die zweite Methode die Datei php.ini
oder die Apache-Konfigurationsdatei überschreibt und aktiviert wird, um die Fehler nur für das aktuelle Skript anzuzeigen.
Wir werden eine andere Möglichkeit zeigen, PHP-Fehler mit denselben Funktionen anzuzeigen - die Funktion error_reporting()
und die Funktion ini_set()
wie bei der ersten Methode. Der kritische Punkt, der diese Methode von der ersten unterscheidet, ist, dass sie eine andere Funktion ini_set()
mit der Direktive display_startup_errors
verwendet und die Funktion error_reporting()
einen ganzzahligen Wert als Argument verwendet.
Wir werden eine permanente Lösung einführen, um alle PHP-Fehler anzuzeigen und die Konfiguration in der Datei php.ini
zu ändern. Die beiden oben genannten Methoden helfen nicht dabei, die Analysefehler wie fehlende geschweifte Klammern und Semikolons anzuzeigen.
Verwenden Sie die Funktion error_reporting('E_ALL')
und die Funktion ini_set()
zusammen mit der Anweisung display_errors
, um einen Warnfehler anzuzeigen
Mit der Funktion error_reporting()
können wir alle Arten von Fehlern im PHP-Skript melden. Dafür verwenden wir die benannte Konstante E_ALL
als Argument in der Funktion. Es werden alle Arten von PHP-Fehlern gemeldet. Und dann können wir die Funktion ini_set()
verwenden, um die gemeldeten Fehler anzuzeigen. Die Funktion setzt die Direktive display_errors
auf true. Daher wird die Konfiguration in der Datei php.ini
festgelegt, um die Sichtbarkeit der Fehler festzulegen. Der ursprüngliche Wert der Direktiven wird jedoch nach Ausführung des aktuellen Skripts in der Datei php.ini
wiederhergestellt.
Schreiben Sie zur Demonstration das error_reporting(E_ALL)
als erste Zeile des Skriptcodes. Setzen Sie in der Funktion ini_set
die display_errors
auf 1
. Echo eine Nachricht wie 'This is a warning errorr'
. Verwenden Sie die Funktion include()
, um eine externe Datei mit dem Namen file.php
einzuschließen. Führen Sie dann das Skript aus.
Das folgende Beispiel versucht, einen Warnfehler in PHP anzuzeigen. Dieser Fehlertyp weist darauf hin, dass im Skript ein Problem vorliegt, ohne dass das Skript ausgeführt werden kann. Das Beispiel enthält die Datei file.php
im Skript. Da sich keine solche Datei im Stammordner befindet, lädt das Skript die Datei nicht und zeigt die Fehler an. Da dies ein Warnfehler ist, wird die Anweisung echo
zusammen mit den Fehlern ausgeführt. Weitere Informationen zur Funktion error_reporting()
finden Sie im PHP-Handbuch.
Beispielcode:
# php 7.*
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "This is a warning error";
include ("file.php");
?>
Ausgabe:
This is a warning error
**Warning**: include(file.php): failed to open stream: No such file or directory in **/var/www/html/index.php** on line **5**
**Warning**: include(): Failed opening 'file.php' for inclusion (include_path='.:/usr/share/php') in **/var/www/html/index.php** on line **5**
Verwendung der Funktion error_reporting('-1')
und der Funktion ini_set()
zusammen mit den Direktiven display_errors
und display_startup_errors
zur Fehleranzeige
Die Funktion error_reporting()
verwendet ebenfalls einen ganzzahligen Wert als Argument. Wir können diese Methode verwenden, um Fehler in PHP anzuzeigen. Es gibt viele Fehlerstufen in PHP. Die Stufe -1
kennzeichnet alle PHP-Fehler. Das Übergeben des Werts -1
funktioniert in zukünftigen Versionen von PHP auch mit neuen Ebenen und Konstanten. Manchmal behandelt die Direktive display_errors
in der Funktion ini_set()
nicht immer die Fehler, die beim Starten von PHP auftreten. In solchen Fällen können wir display_startup_errors
verwenden, um die Fehler anzuzeigen.
Setzen Sie beispielsweise die Verzeichnisse der Funktion ini_set()
auf display_startup_errors
und display_errors
. Setzen Sie sie in der Funktion ini_set()
auf true
und bezeichnen Sie sie mit 1
. Setzen Sie error_reporting
auf -1
. Weisen Sie einer Variablen $a
den Wert 10 zu und drucken Sie eine Variable $b
.
Im folgenden Beispiel tritt im Skript ein Benachrichtigungsfehler auf. Der Code versucht, die undefinierte Variable zu drucken. Weitere Informationen zur Funktion ini_set()
finden Sie im PHP-Handbuch.
Beispielcode:
#php 7.x
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
$a = 10;
echo $b;
?>
Ausgabe:
**Notice**: Undefined variable: b in **/var/www/html/index.php** on line **6**
Ändern Sie die Anweisungen in der Datei php.ini
, um alle Fehler anzuzeigen, einschließlich Analysefehler in PHP
Wir können die Anweisungen in der Datei php.ini
so ändern, dass PHP-Fehler angezeigt werden, wenn die oben genannten nicht funktionieren. Die Datei php.ini
enthält die Standardkonfigurationen, die beim Ausführen eines PHP-Skripts erforderlich sind. Die oben genannten Methoden ändern den Wert der Direktiven nur zur Laufzeit, während durch Ändern der Datei php.ini
die Werte dauerhaft geändert werden. Wir sollten diese Praxis jedoch nicht auf Produktionsebene befolgen. Überprüfen Sie das PHP-Handbuch, um mehr über die Konfigurationsdatei in PHP zu erfahren.
Um den Wert der Direktiven der Datei php.ini
zu ändern, suchen Sie zunächst die Datei in Ihrem System. Verwenden Sie das folgende Skript.
#php 7.x
<?php
phpinfo();
?>
Suchen Sie Loaded Configuration File
, und Sie können den Speicherort der Datei php.ini
sehen. Suchen Sie in der Datei die Anweisungen display_errors
und display_startup_errors
und ändern Sie den Wert in on
. Suchen Sie error_reporting
und wechseln Sie zu error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING
. Starten Sie dann den Apache-Webserver neu.
Setzen Sie beispielsweise in der PHP-Datei error_reporting(-1)
. Weisen Sie der Variablen $a
den Wert Orange
zu, schreiben Sie jedoch kein Semikolon danach. Drucken Sie die Variable in einer anderen Zeile.
Im Ausgabeabschnitt des Codebeispiels wird der Analysefehler festgestellt und angezeigt. Daher kann beim Konfigurieren der Datei php.ini
auch die Analysefehler angezeigt werden.
Codebeispiel:
#php 7.x
<?php
error_reporting(-1);
$a = "Orange"
echo $a;
?>
Ausgabe:
**Parse error**: syntax error, unexpected 'echo' (T_ECHO) in **/var/www/html/index.php** on line **6**
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn