php-Fehlermeldeebenen sind: 1. E_ERROR schwerwiegender Laufzeitfehler, im Allgemeinen nicht behebbar; 2. E_WARNING Laufzeitwarnung (nicht schwerwiegender Fehler); 3. E_PARSE-Syntaxanalysefehler beim Initialisieren. Es treten schwerwiegende Fehler auf in; 5. E_CORE_WARNING Warnungen (nicht schwerwiegende Fehler), die während des Initialisierungs-Startvorgangs auftreten;
Die Betriebsumgebung dieses Tutorials: Windows7-System, PHP8-Version, DELL G3-Computer
Bei unserer Programmentwicklung stoßen wir häufig auf Fehler bei der Programmausführung, und PHP gibt Anweisungen basierend auf der Fehlerstufe des Programms . Geben Sie verschiedene Aufforderungen. Zum Beispiel Warnungen, Fehler usw., aber wenn es sich nur um kleine Fehler handelt, können wir verhindern, dass diese Fehler gemeldet werden.
Fehlerstufen in PHP sind:
1 |
E_ERROR E_ERROR (integer)
|
致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。 | ||||||||||
2 |
E_WARNING (integer)
|
运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。 | ||||||||||
4 |
E_PARSE (integer)
|
编译时语法解析错误。解析错误仅仅由分析器产生。 | ||||||||||
8 |
E_NOTICE (integer)
| Fatal operation Time Fehler. Bei dieser Art von Fehler handelt es sich im Allgemeinen um eine nicht behebbare Situation, beispielsweise um ein Problem, das durch die Speicherzuweisung verursacht wird. Die Folge ist, dass das Skript beendet wird und nicht weiter ausgeführt wird. |||||||||||
16 |
E_CORE_ERROR E_CORE_ERROR (integer) |
在PHP初始化启动过程中发生的致命错误。该错误类似E_ERROR ,但是是由PHP引擎核心产生的。 |
since PHP 4 | |||||||||
32 |
E_CORE_WARNING (integer) |
PHP初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING ,但是是由PHP引擎核心产生的。 |
since PHP 4 | |||||||||
64 |
E_COMPILE_ERROR (integer) |
致命编译时错误。类似E_ERROR , 但是是由Zend脚本引擎产生的。 |
since PHP 4 | |||||||||
128 |
E_COMPILE_WARNING (integer) |
编译时警告 (非致命错误)。类似 E_WARNING ,但是是由Zend脚本引擎产生的。 |
since PHP 4 | |||||||||
256 |
E_USER_ERROR (integer) |
用户产生的错误信息。类似 E_ERROR (integer)
|
Schwerwiegender Fehler, der während des PHP-Initialisierungsstarts aufgetreten ist. Dieser Fehler ähnelt E_ERROR 🎜, wird jedoch vom Kern der PHP-Engine generiert. 🎜 |
seit PHP 4🎜🎜 | ||||||||
Warnung (nicht schwerwiegender Fehler), die während des PHP-Initialisierungsstarts auftritt. Ähnlich wie 🎜E_WARNING 🎜, jedoch vom PHP-Engine-Kern generiert. 🎜 |
seit PHP 4🎜🎜 | |||||||||||
Schwerwiegender Fehler bei der Kompilierung. Ähnlich wie 🎜E_ERROR 🎜, jedoch von der Zend-Skript-Engine generiert. 🎜 |
seit PHP 4🎜🎜 | |||||||||||
Warnung zur Kompilierungszeit (nicht schwerwiegender Fehler). Ähnlich wie 🎜E_WARNING 🎜, aber generiert von der Zend-Skript-Engine. 🎜 |
seit PHP 4🎜🎜 | |||||||||||
Benutzergenerierte Fehlermeldung. Ähnlich wie 🎜E_ERROR 🎜, aber der Benutzer verwendet die PHP-Funktion 🎜trigger_error()🎜 im Code. generiert. |
seit PHP 4 | |||||||||||
512 |
E_USER_WARNING E_USER_WARNING (integer) |
用户产生的警告信息。类似 E_WARNING , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。 |
since PHP 4 | |||||||||
1024 |
E_USER_NOTICE (integer) |
用户产生的通知信息。类似 E_NOTICE , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。 |
since PHP 4 | |||||||||
2048 |
E_STRICT (integer)
|
启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。 | since PHP 5 | |||||||||
4096 |
E_RECOVERABLE_ERROR (integer) |
可被捕捉的致命错误。 它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。 如果该错误没有被用户自定义句柄捕获,将成为一个 E_ERROR 从而脚本会终止运行。 |
since PHP 5.2.0 | |||||||||
8192 | E_DEPRECATED (integer)Vom Benutzer generierte Warnmeldung. Ähnlich wie |
, aber der Benutzer verwendet die PHP-Funktion im Code trigger_error()🎜 zum Generieren. 🎜🎜seit PHP 4🎜🎜E_USER_NOTICE 🎜(integer🎜)🎜🎜Benutzergenerierte Benachrichtigungen Information. Ähnlich wie 🎜E_NOTICE 🎜, aber der Benutzer verwendet die PHP-Funktion im Code trigger_error()🎜 zum Generieren. 🎜🎜seit PHP 4🎜🎜E_STRICT 🎜🎜 (Ganzzahl)🎜🎜🎜Aktivieren Sie PHPs Vorschläge für Codeänderungen, um die beste Interoperabilität und Vorwärtskompatibilität des Codes sicherzustellen. 🎜🎜seit PHP 5🎜🎜E_RECOVERABLE_ERROR 🎜(integer🎜)🎜🎜kann tödlich erfasst werden Fehler. Es weist darauf hin, dass ein potenziell gefährlicher Fehler aufgetreten ist, der jedoch nicht zu einer Instabilität der PHP-Engine geführt hat. Wenn der Fehler nicht von einem benutzerdefinierten Handler abgefangen wird, wird er zu einem 🎜E_ERROR 🎜 und dem Das Skript wird beendet. 🎜🎜seit PHP 5.2.0🎜🎜E_DEPRECATED 🎜🎜(integer)🎜🎜🎜Laufzeitbenachrichtigung. Wenn diese Option aktiviert ist, wird eine Warnung vor Code ausgegeben, der in zukünftigen Versionen möglicherweise nicht ordnungsgemäß funktioniert.seit PHP 5.3.0 |
16384 |
|
E_USER_DEPRECATED E_USER_DEPRECATED (integer)用户产少的警告信息。 类似 |
E_DEPRECATED , 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。since PHP 5.3.0 |
30719 |
|
E_ALL (integer)
E_STRICT (integer)Warnmeldung für Benutzer, weniger zu generieren. Ähnlich wie |
| , aber der Benutzer verwendet die PHP-Funktion im Code trigger_error()
E_DEPRECATED |
E_ALL
🎜 (integer)🎜🎜E_STRICT
🎜Alle Fehler- und Warnmeldungen beim Ausgehen. 🎜🎜30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 zuvor🎜🎜🎜🎜So legen Sie die Fehlerberichtsebene in PHP fest:
1. Ändern Sie die PHP-Konfigurationsdatei php.ini
Nachdem Sie error_reporting auf diese Weise eingestellt haben, starten Sie den Webserver neu und es wird dauerhaft wirksam.
Öffnen Sie die Konfigurationsdatei php.ini und überprüfen Sie den Standardwert der Fehlerberichtsebene error_reporting wie folgt:
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT1.
Das bedeutet, dass alle Fehler gemeldet werden, außer E_DEPRECATED und E_STRICT.
Ändern Sie es in:
error_reporting=E_ALL & ~E_NOTICE1.
Es bedeutet, dass alle Fehler außer E_NOTICE gemeldet werden. Dies ist auch die am häufigsten verwendete Fehlerberichtsebene. Es werden keine Fehler der Aufmerksamkeitsklasse gemeldet (z. B. die Verwendung einer undefinierten Variablen).
Speichern und es wird nach dem Neustart des Webservers wirksam.
2. Verwenden Sie die Funktion error_reporting()
Nach dieser Einstellung kann sie sofort wirksam werden. Allerdings nur im Bereich nach dem Funktionsaufruf error_reporting() im aktuellen Skript.
int error_reporting ([ int $level ] )1.
Der Parameter kann eine Ganzzahl oder der entsprechende Konstantenbezeichner sein. Es wird empfohlen, die Konstantenform zu verwenden. Der Rückgabewert ist der Wert (Ganzzahlwert) der am aktuellen Standort gültigen Fehlermeldestufe.
Hinweis: Der Standardwert von display_errors in der Konfigurationsdatei php.ini ist „On“, was bedeutet, dass Fehlermeldungen angezeigt werden. Wenn dieser Wert auf „Off“ gesetzt ist, werden alle Fehlermeldungen deaktiviert.
Verwenden Sie error_reporting(0) oder fügen Sie @
vor der Funktion hinzu, um die Fehlerausgabe zu unterdrücken und zu verhindern, dass Fehlermeldungen vertrauliche Informationen preisgeben.
Parameterebene
Neue Fehlerberichtsebene. Kann eine Bitmaske oder eine benannte Konstante sein.
Es wird empfohlen, benannte Konstanten zu verwenden, um die Kompatibilität mit zukünftigen Versionen sicherzustellen. Aufgrund der Hinzufügung von Fehlerstufen und der Vergrößerung des Bereichs ganzzahliger Werte verhalten sich
ältere ganzzahlbasierte Fehlerstufen nicht immer wie erwartet.
level Mögliche Werte (Fehlermeldeebene in PHP)
Common: Insgesamt etwa 15
15 entsprechen genau den 15 Bits der Binärdatei.
Es ist zu beachten, dass die Felder in der obigen Tabelle nicht statisch sind. Verschiedene PHP-Versionen können unterschiedliche Werte haben.
Eine beliebige Anzahl der oben genannten Optionen kann mit „OR“ (verwenden Sie OR oder |) verknüpft werden kann alle erforderlichen Fehler auf allen Ebenen melden.
Der folgende Code deaktiviert beispielsweise benutzerdefinierte Fehler und Warnungen, führt bestimmte Vorgänge aus und kehrt dann zur ursprünglichen Fehlerebene zurück:
Beispiel:
<?php error_reporting(0); //禁用错误报告 error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误 error_reporting(E_ALL); //报告所有错误 error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE报告所有错误,是在php.ini的默认设置 error_reporting(-1); //报告所有 PHP 错误 error_reporting(3); //不报E_NOTICE error_reporting(11); //报告所有错误 ini_set('error_reporting', E_ALL); // 和 error_reporting(E_ALL); 一样 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。 ?>
Konvertierungsbeziehung:
E_All: dezimal ist 30719 , in Binär umgewandelt ist 111011111111111
E_NOTICE: Dezimal ist 8, in Binär umgewandelt ist 1000
~E_NOTICE: negiere E_NOTICE und werde zu 0111
E_ALL & ~E_N. OTICE ::E_ALL und ~E_NOTICE werden mit AND verknüpft und wird zu 111011111110111. Bei der Konvertierung in eine Dezimalzahl ist es 30711
Sie können sehen, dass E_ALL nicht alle Fehler anzeigt. Das 12. Bit ist 0. Das Gewicht dieses Bits beträgt 2 hoch 11, was 2048 entspricht ist der Wert von E_STRICT, daher zeigt E_ALL alle Fehlerstufen außer E_STRICT an.
E_ALL & ~E_NOTICE sind binär zu sehen, von rechts nach links sind das 4. und 12. Bit 0, das Gewicht des 4. Bits beträgt 2 hoch 3, also 8, was dem Wert von E_NOTICE entspricht , daher werden alle Fehler außer E_STRICT und E_NOTICE angezeigt.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas sind die Fehlerstufen in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!