Heim > Backend-Entwicklung > PHP-Problem > Was sind die Fehlerstufen in PHP?

Was sind die Fehlerstufen in PHP?

青灯夜游
Freigeben: 2023-03-17 20:46:01
Original
4680 Leute haben es durchsucht

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;

Was sind die Fehlerstufen in PHP?

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:

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. 🎜🎜2🎜 🎜🎜🎜E_WARNING🎜🎜 (Ganzzahl)🎜🎜🎜Laufzeitwarnung (nicht schwerwiegender Fehler). Es wird nur eine Eingabeaufforderung angezeigt, das Skript wird jedoch nicht beendet. 🎜🎜🎜🎜🎜🎜4🎜 🎜🎜🎜E_PARSE🎜🎜 (Ganzzahl)🎜🎜🎜Syntaxparsingfehler bei der Kompilierung. Parsing-Fehler werden nur vom Parser generiert. 🎜🎜🎜🎜🎜🎜8🎜 🎜🎜🎜E_NOTICE🎜🎜 (Ganzzahl)🎜🎜🎜Laufzeitbenachrichtigung. Zeigt an, dass das Skript auf eine Situation stößt, die möglicherweise als Fehler erscheint. Es können jedoch auch ähnliche Benachrichtigungen in Skripten vorliegen, die normal ausgeführt werden können. 🎜🎜🎜🎜32🎜🎜🎜E_CORE_WARNING🎜(integer🎜)🎜🎜64🎜🎜🎜E_COMPILE_ERROR🎜(integer🎜)🎜🎜128🎜🎜🎜E_COMPILE_WARNING🎜(integer🎜)🎜🎜256🎜🎜🎜E_USER_ERROR🎜(integer🎜)🎜E_WARNING🎜1024🎜 🎜🎜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🎜🎜🎜🎜2048🎜🎜 🎜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🎜🎜🎜4096🎜 🎜🎜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🎜🎜🎜 🎜8192🎜🎜🎜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., aber der Benutzer verwendet die PHP-Funktion im Code trigger_error() zum Generieren.
1 E_ERRORE_ERROR (integer) 致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。
2 E_WARNING (integer) 运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。
4 E_PARSE (integer) 编译时语法解析错误。解析错误仅仅由分析器产生。
8 E_NOTICE (integer)
16 E_CORE_ERRORE_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_WARNINGE_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🎜🎜
seit PHP 5.3.0
16384 E_USER_DEPRECATEDE_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 E_DEPRECATED
seit PHP 5.3.0🎜🎜🎜30719🎜🎜🎜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.
Nach dem Login kopieren

Das bedeutet, dass alle Fehler gemeldet werden, außer E_DEPRECATED und E_STRICT.
Ändern Sie es in:

error_reporting=E_ALL &  ~E_NOTICE1.
Nach dem Login kopieren

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.
Nach dem Login kopieren

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

Was sind die Fehlerstufen in PHP?

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(&#39;error_reporting&#39;, E_ALL); // 和 error_reporting(E_ALL); 一样
     error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。
?>
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage