In PHP können Sie die Fehlerbehandlung über die Funktion „set_error_handler()“ anpassen. Die Funktion dieser Funktion besteht darin, eine andere Funktion als Fehlerbehandlungsfunktion anzugeben. Die Syntax lautet wie folgt: „set_error_handler(callable $error_handler...)“ ".
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Wie passe ich Fehleraufforderungen in PHP an?
PHP set_error_handler()
: Benutzerdefinierte Fehlerbehandlungsfunktion
PHP bietet einen set_error_handler () Mit dieser Funktion können Sie eine andere Funktion als Fehlerbehandlungsfunktion angeben. Die Syntax lautet wie folgt:
set_error_handler(callable $error_handler [, int $error_types = E_ALL | E_STRICT ])
Parameterbeschreibung
1) $error_handler ist ein benutzerdefinierter Funktionsname Als Funktionsnamen können Sie auch NULL übergeben. Um den Handler auf seinen Standardzustand zurückzusetzen, können Sie auch ein Array von Referenzobjekten und Objektmethodennamen übergeben.
Das Format der benutzerdefinierten Funktion ist wie folgt:
error_handler(int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]])
Unter ihnen:
Der erste Parameter $errno stellt die Fehlerstufe dar, die ein ganzzahliger Typ ist;
Der zweite Parameter $errstr stellt die Fehlerinformationen dar, Das ist ein String-Typ.
Der dritte Parameter $errfile ist ein optionaler Parameter, der den Dateinamen angibt, in dem der Fehler aufgetreten ist, und ein String-Typ.
Der vierte Parameter $errline ist ebenfalls ein optionaler Parameter, der die Zeilennummer angibt wo der Fehler aufgetreten ist und ein ganzzahliger Typ ist;
Der fünfte Parameter $errcontext ist ebenfalls ein optionaler Parameter (veraltet nach PHP7.2.0), der das Array der aktiven Symboltabellen darstellt, wenn ein Fehler auftritt. Das heißt, $errcontext enthält ein Array aller Variablen in dem Bereich, in dem der Fehler ausgelöst wurde. Der Fehlerhandler des Benutzers sollte den Fehlerkontext nicht ändern.
Hinweis: Wenn die Funktion set_error_handler() FALSE zurückgibt, wird weiterhin der Standard-Fehlerhandler aufgerufen.
2) Der Parameter $error_types ist genau wie der Parameter error_reporting in der Konfigurationsdatei php.ini, der die Anzeige von Fehlern steuern kann. Mit diesem Parameter kann das Auslösen von $error_handler blockiert werden. Ohne diese Maske wird $error_handler bei jedem Fehler aufgerufen, unabhängig davon, wie $error_reporting eingestellt ist.
Wenn zuvor ein Fehlerhandler definiert wurde, wird der Programmname zurückgegeben. Wenn es sich um einen integrierten Fehlerhandler handelt, wird NULL zurückgegeben. Wenn eine ungültige Callback-Funktion angegeben ist, wird auch NULL zurückgegeben. Wenn der vorherige Fehlerhandler eine Klassenmethode war, gibt diese Funktion ein indiziertes Array mit den Klassen- und Methodennamen zurück.
【Beispiel】Passen Sie eine Fehlerbehandlungsfunktion an und verwenden Sie sie zur Behandlung von Fehlern im Programm.
<?php function error_handler($errno, $errstr, $errfile, $errline ) { echo "error number:".$errno."<br/>"; echo "error msg:".$errstr."<br/>"; echo "error file:".$errfile."<br/>"; echo "error line:".$errline."<br/>"; die('something error'); } set_error_handler("error_handler"); strpos(); ?>
Die laufenden Ergebnisse sind wie folgt:
error number:2 error msg:strpos() expects at least 2 parameters, 0 given error file:D:\WWW\index.php error line:10 something error
Hinweis: Verwenden Sie diese Methode zur Fehlerbehandlung. Wenn die Ausführung des Programms in der Fehlerbehandlungsfunktion nicht beendet wird, führt das Programm die nächste Zeile aus, in der der Fehler aufgetreten ist , daher müssen Sie die Funktion die() verwenden, um das Programm zu beenden.
Es ist außerdem zu beachten, dass diese Fehlerbehandlungsmethode nicht alle Ebenen von Programmfehlern übernehmen kann. Fehler in den Abschnitten E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING und E_STRICT werden in ihrer ursprünglichen Form angezeigt.
set_error_handler() Advanced
Der Ausnahmebehandlungsmechanismus von PHP ist nicht perfekt und kann keine Ausnahmen automatisch auslösen. Benutzer können set_error_handler() auch verwenden, um Ausnahmen als Fehler zu behandeln, sodass Benutzer benutzerdefinierte Fehler verwenden können. Die Handlerfunktion fängt Ausnahmen automatisch ab.
【Beispiel】Verwenden Sie eine benutzerdefinierte Fehlerbehandlungsfunktion, um Ausnahmen automatisch abzufangen.
<?php function error_handler($errno, $errstr, $errfile, $errline ) { echo "error number:".$errno."<br/>"; echo "error msg:".$errstr."<br/>"; echo "error file:".$errfile."<br/>"; echo "error line:".$errline."<br/>"; die('something error'); } set_error_handler("error_handler"); /* 触发异常 */ try { $a = 5/0; echo $a; } catch(Exception $e) { echo $e->getMessage(); } ?>
Die laufenden Ergebnisse sind wie folgt:
error number:2 error msg:Division by zero error file:D:\WWW\index.php error line:12 something error
Wenn das Programm die Anweisung $a = 5/0; in Zeile 12 ausführt, fängt das Programm diese Ausnahme automatisch ab und behandelt sie mit einer benutzerdefinierten Funktion.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo passen Sie Fehleraufforderungen in PHP an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!