Heim > Backend-Entwicklung > PHP-Problem > Was sind die häufigsten Fehlertypen in PHP?

Was sind die häufigsten Fehlertypen in PHP?

小老鼠
Freigeben: 2023-04-24 16:28:48
Original
2063 Leute haben es durchsucht

Übliche Fehlertypen in PHP sind: 1. Parse-Fehlertyp, der einen Parsing-Fehler oder Syntaxfehler anzeigt; 3. Warnungstyp, der einen Warnfehler anzeigt; 5 . Veralteter Typ, der den Fehler der niedrigsten Ebene angibt.

Was sind die häufigsten Fehlertypen in PHP?

Das Betriebssystem dieses Tutorials: Windows 10-System, PHP-Version 8.1, Dell G3-Computer.

1. PHP-Fehlertyp

PHP-Fehlerstufe

Schwerwiegender Fehler > Veraltet

1. Syntaxfehler Dies ist der häufigste Fehler in der Programmierung und am einfachsten zu beheben. Wenn beispielsweise ein Semikolon fehlt, wird eine Fehlermeldung angezeigt. Dieser Fehler stoppt die Programmausführung und zeigt eine Fehlermeldung an. Wir können das Programm anhand der Fehlermeldung korrigieren und erneut ausführen. 【Beispiel】Im Folgenden werden häufige Syntaxfehler und zugehörige Fehlermeldungen anhand von einfachem Code demonstriert.

<?php
    $a = 1;
    $b = 2;
    $c = $a + $b
    echo ;
?>
Nach dem Login kopieren

; wird am Ende von Zeile 4 im obigen Code weggelassen, daher wird beim Ausführen des obigen Codes die folgende Fehlermeldung angezeigt:

Parse error: syntax error, unexpected &#39;echo&#39; (T_ECHO) in D:\WWW\index.php on line 5
Nach dem Login kopieren

Wie aus dem obigen Beispiel und den Ausführungsergebnissen ersichtlich ist, verhindern Syntaxfehler das Programm von der weiteren Ausführung abhalten. Erst wenn diese Fehler behoben sind, kann das Programm reibungslos ausgeführt werden.

2. Schwerwiegender Fehler:

Dies ist die Art von Fehler, bei der der PHP-Compiler den PHP-Code versteht, aber eine nicht deklarierte Funktion identifiziert. Dies bedeutet, dass eine Funktion ohne Funktionsdefinition aufgerufen wird. Das Programm meldet direkt einen Fehler und der Code muss geändert werden! ! ! Um die Programmausführung zu unterbrechen, können Sie die Funktion register_shutdown_function() verwenden, um eine Funktion auszulösen, bevor das Programm beendet wird, z. B.

<?php 
function add($x, $y) { 
    $sum = $x + $y; 
    echo "sum = " . $sum; 
}
$x = 0; 
$y = 20;
add($x, $y); 
diff($x, $y); 
?>
Nach dem Login kopieren

Erklärung: In Zeile 10 wird die Funktion diff() aufgerufen, aber die Funktion diff() hat keine Deklarationsdefinition und gibt daher einen Fehler aus.

Was sind die häufigsten Fehlertypen in PHP?

3. Warnung:

Es liegt kein Syntaxfehler im Programm vor, aber während des Ausführungsprozesses wird PHP einige unzumutbare Aspekte des Programms feststellen und daher eine Warnmeldung auslösen, das Programm wird jedoch weiterhin ausgeführt. Beispiel: Die Verwendung von 0 als Divisor führt dazu, dass das Programm fehlerhaft läuft und eine Fehlermeldung ausgibt.

<?php
    $a = 1;
    $b = 0;
    $c = $a / $b;
    echo "$a / $b = $c";
?>
Nach dem Login kopieren

Fehler:

4. Hinweis: Was sind die häufigsten Fehlertypen in PHP?

Es ähnelt einem Warnfehler, was bedeutet, dass das Programm einen Fehler enthält, das Skript jedoch ausgeführt werden kann. Es wird angezeigt, wenn einige undefinierte Variablen, Konstanten oder Array-Schlüssel ohne Anführungszeichen verwendet werden, und das Programm wird weiterhin ausgeführt

<?php  
header("content-type:text/html;charset=utf-8");
$x = "PHP中文网"; 
echo $x; 
echo $y; 
?>
Nach dem Login kopieren
Erklärung: Dieses Programm verwendet die nicht deklarierte Variable $y und gibt daher eine Fehlermeldung aus.

5. Der Fehler der niedrigsten Ebene (veraltet, nicht empfohlen, nicht empfohlen)

tritt auf, wenn einige abgelaufene Funktionen verwendet werden, und das Programm wird weiterhin ausgeführt.

2. PHP-Fehlerkonfiguration

Zusätzlich zur Einstellung im Skript können Sie es auch in der php.ini-Konfigurationsdatei konfigurieren

error_reporting = E_ALL&~E_NOTICE; //设置错误报告级别
display_errors = 1; //开发环境开启,生产环境关闭
Nach dem Login kopieren

3. PHP-Ausnahme

Die PHP-Ausnahme ist eine neue Funktion von PHP5 ähnelt JAVA /C#-Ausnahmen. PHP-Ausnahmen müssen manuell durch Auslösen einer neuen Ausnahme ausgelöst werden, anstatt automatisch vom System ausgelöst zu werden. Der Unterschied zwischen PHP-Fehlern und Ausnahmen Es handelt sich um zwei verschiedene Konzepte, die jedoch etwas gemeinsam haben:

Wenn die Ausnahme nicht abgefangen und behandelt wird, wird das Programm beendet und meldet einen schwerwiegenden Fehler Sie sehen das. Anomalien sind keine Art von Fehler. Das ist eine Illusion, aber es kann so verstanden werden. Das Programm kann jedoch weiterhin ausgeführt werden, nachdem die Ausnahme abgefangen wurde. Das Programm muss jedoch beendet werden, nachdem der tatsächliche schwerwiegende Fehler aufgetreten ist.

Ausnahmen können mit try{}catch(){} erfasst werden. Nach der Erfassung kann nachfolgender Code weiter ausgeführt werden, während Fehler nicht mit try{}catch(){} erfasst werden können. </ code>erfasst. </p><p>Wenn eine Ausnahme ausgelöst wird, muss diese abgefangen werden, andernfalls bricht das Programm die Ausführung ab. </p><p><code>try{}catch(){}来捕获捕获,捕获之后后续代码可以继续执行;而错误是无法使用try{}catch(){}捕获的。

如果抛出了异常,就必须捕获它,否则程序终止执行。

四、PHP异常与错误的抛出

异常抛出:throw new Exception(‘Some Error Message’);

错误抛出:trigger_error();

trigger_error()触发的错误不会被try-catch异常捕获语句捕获

五、PHP错误处理

set_error_handler()
Nach dem Login kopieren

只能处理Deprecated、Notice、Waning这三种级别错误,而且处理后,脚本将会继续执行发生错误的后一行。

register_shutdown_function()
Nach dem Login kopieren

这个方法是脚本结束前的最后一个回调函数,所以无论是die()/错误(异常)/还是脚本正常结束都会调用

六、PHP异常处理

set_exception_handler()
Nach dem Login kopieren

设置默认的异常处理程序,有try/catch捕获的话这个函数就不会执行,反之就会执行,而且执行的话,脚本将不会继续执行发生异常的后一行代码,程序马上中止

set_exception_handler()4. PHP-Ausnahmen und Fehler werden ausgelöst

🎜🎜Ausnahme wird ausgelöst: throw new Exception('Some Error Message');🎜🎜Fehler wird ausgelöst: trigger_error(); 🎜🎜trigger_error()Der ausgelöste Fehler wird nicht von der Try-Catch-Exception-Capture-Anweisung erfasst🎜🎜🎜5. PHP-Fehlerbehandlung🎜🎜
<?php
class App{
    function myException($exception) {
        echo "<b>Exception:</b> " , $exception->getMessage();
    }
}
set_exception_handler(array(&#39;App&#39;,&#39;myException&#39;));
 
throw new Exception(&#39;Uncaught Exception occurred&#39;);
?>
Nach dem Login kopieren
Nach dem Login kopieren
🎜 kann nur die drei Ebenen „Veraltet“, „Benachrichtigung“ und „Waning“ verarbeiten von Fehlern, und nach der Verarbeitung fährt das Skript mit der Ausführung der nächsten Zeile fort, in der der Fehler aufgetreten ist. 🎜rrreee🎜Diese Methode ist die letzte Rückruffunktion vor dem Ende des Skripts, daher wird sie aufgerufen, unabhängig davon, ob es sich um die()/Fehler (Ausnahme) handelt oder das Skript normal endet🎜🎜🎜 6. PHP-Ausnahmebehandlung🎜🎜rrreee🎜Eingestellt Das Standard-Ausnahmebehandlungsprogramm. Wenn eine Try/Catch-Erfassung vorhanden ist, wird diese Funktion nicht ausgeführt. Andernfalls wird sie ausgeführt. Wenn sie ausgeführt wird, führt das Skript die nächste Codezeile, in der die Ausnahme auftritt, nicht weiter aus Das Programm wird sofort beendet🎜🎜set_Exception_handler()</ code>Hinweise🎜<p><code>set_exception_handler(“myException”) 不仅可以接受函数名,还可以接受类的方法(公开的静态方法 及 公开的非静态方法 都可以),但需要以 数组形式 传递,数组的第一值为“类名”,第二个参数为“方法名”,如下代码所示:

<?php
class App{
    function myException($exception) {
        echo "<b>Exception:</b> " , $exception->getMessage();
    }
}
set_exception_handler(array(&#39;App&#39;,&#39;myException&#39;));
 
throw new Exception(&#39;Uncaught Exception occurred&#39;);
?>
Nach dem Login kopieren
Nach dem Login kopieren

七、PHP7 异常处理的大变化

在PHP7之前,Deprecated、Notice、Waning这类错误是可以捕获的(使用set_error_handler()函数),而Fatel Error无法捕获的。

在PHP7之后,出现了一个异常与错误通用的接口Throwable,Exception类与Error类都实现了该接口,导致Error类或Error类的派生类的错误对象(大部分Fatel Error,而之前三类错误不变)也可以像Exception一样被捕获(2种捕获方法:1、try/catch 2、set_exception_handler())。

Das obige ist der detaillierte Inhalt vonWas sind die häufigsten Fehlertypen in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage