Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Instanzverwendung des PHP-Fehlerkontrolloperators @ oder die()

Detaillierte Erläuterung der Instanzverwendung des PHP-Fehlerkontrolloperators @ oder die()

伊谢尔伦
伊谢尔伦Original
2017-06-21 14:11:577381Durchsuche

PHP unterstützt einen Fehlerkontrolloperator: @. Wenn es vor einem PHP-Ausdruck platziert wird, wird jede Fehlermeldung, die dieser Ausdruck möglicherweise erzeugt, ignoriert.

Wenn Sie mit set_error_handler() eine benutzerdefinierte Fehlerbehandlungsfunktion festlegen, wird diese weiterhin aufgerufen, aber diese Fehlerbehandlungsfunktion kann (und sollte) error_reporting() aufrufen, und diese Funktion hat @ wird 0 zurückgeben.

Wenn die Funktion „track_errors“ aktiviert ist, werden alle durch den Ausdruck generierten Fehlermeldungen in der Variablen $php_errormsg gespeichert. Diese Variable wird bei jedem Fehler überschrieben. Überprüfen Sie sie daher so früh wie möglich, wenn Sie sie verwenden möchten.

php-Ignorierfehlersymbol @

@ ist ein Fehlerignorierzeichen in der PHP-Sprache. Wenn es vor einem PHP-Ausdruck platziert wird, kann der Ausdruck beliebige Fehlermeldungen generieren werden ignoriert. Zum Beispiel:

@include("file.php");

Es ist zu beachten, dass der @-Operator nur für Ausdrücke gültig ist. Sie können es sich so vorstellen: Wenn Sie irgendwo einen Wert erhalten, können Sie den @-Operator davor einfügen.

Sie können es beispielsweise vor Variablen, Funktionen und Include-Aufrufen, Konstanten usw. einfügen.

Es kann weder vor der Definition einer Funktion oder Klasse platziert noch in bedingten Strukturen wie if und foreach verwendet werden.

Darüber hinaus wird @ normalerweise zusammen mit oder die() verwendet, zum Beispiel:

(@include("file.php"))
 OR die("Could not find file.php!");

Die obige Aussage bedeutet, dass, wenn die Einbindung von file.php nicht erfolgreich ist, wie z file.php-Datei Wenn sie nicht existiert, wird auf der Webseite „Datei.php nicht gefunden!“ angezeigt und die Ausführung des Programms wird sofort gestoppt.

Wenn das @-Zeichen nicht hinzugefügt wird und include("file.php") einen Fehler zurückgibt, wird auf der Webseite Folgendes gedruckt:

Warning: include(file.php) [function.include]: failed to open stream: No such file or directory
Warning: include() [function.include]: Failed opening 'file.php' for inclusion (include_path='.;C:\php5\pear')

Über or die() Einige Verwendungszwecke

Jeder ist mit der Verwendung der die()-Funktion vertraut, aber Sie sind sich möglicherweise nicht bewusst, welche Auswirkungen das Schreiben von Methoden wie or die() hat.

Verstehen Sie zuerst die().

die Definition und Verwendung

die()-Funktion gibt eine Nachricht aus und beendet das aktuelle Skript.

Syntax

die(status)

Status Erforderlich. Gibt die Meldung oder Statusnummer an, die vor dem Verlassen des Skripts geschrieben werden soll. Statusnummern werden nicht auf den Ausgang geschrieben.

Wenn status eine Zeichenfolge ist, gibt die Funktion die Zeichenfolge aus, bevor sie beendet wird.

Wenn Status eine Ganzzahl ist, wird dieser Wert als Exit-Status verwendet. Der Exit-Statuswert liegt zwischen 0 und 254. Der Exit-Status 255 ist von PHP reserviert und wird nicht verwendet. Der Status 0 wird verwendet, um das Programm erfolgreich zu beenden.

Hinweis: Wenn die PHP-Versionsnummer größer oder gleich 4.2.0 ist und Status eine Ganzzahl ist, wird dieser Parameter nicht ausgegeben.

php- oder die()-Anweisung

Wir sehen oft Aussagen wie diese:

$file = fopen($filename, 'r') or die("抱歉,无法打开: $filename");

oder so wird es hier verstanden, weil In PHP wird nicht zwischen Datentypen unterschieden, daher kann $file entweder int oder bool sein, sodass eine solche Anweisung keinen Fehler meldet. Aber einige Freunde verstehen den Verarbeitungsprozess möglicherweise nicht.

Tatsächlich wird in den meisten Sprachen in Anweisungen wie bool oder bool der nächste Wert nicht beurteilt, wenn der vorherige Wert wahr ist. Das Gleiche gilt auch hier. Wenn die Funktion fopen also korrekt ausgeführt wird, gibt sie einen int-Wert größer als 0 zurück (was tatsächlich „wahr“ ist) und die nachfolgenden Anweisungen werden nicht ausgeführt.

Wenn die Ausführung der fopen-Funktion fehlschlägt, gibt sie false zurück und beurteilt dann, ob der folgende Ausdruck wahr ist.

Nach der Ausführung von die() wird die Ausführung des Programms unabhängig davon, was zurückgegeben wird, gestoppt und die angegebene Fehlermeldung wird angezeigt, wodurch der Zweck des Debuggens erreicht wird. das ist alles.

Zwei Funktionen, die häufig bei der Fehlerverwaltung verwendet werden, sind die() und exit() (streng genommen handelt es sich eher um Sprachkonstrukte als um Funktionen, aber wen interessiert das schon).

Wenn die() und exit() in einem Skript aufgerufen werden, wird das gesamte Skript beendet.

Sie alle können verwendet werden, um die weitere Ausführung des Skripts zu verhindern, sodass bestimmte wichtige Vorgänge (z. B. das Herstellen einer Datenbankverbindung) nicht ausgeführt werden. Sie können auch die() und exit() eine Zeichenfolge übergeben, die im Browser gedruckt wird.

Normalerweise werden die() und exit() in OR-Bedingungsanweisungen verwendet.

Zum Beispiel

include('config.inc.php') OR die ('Could not open the file. ');

Wenn PHP nach dem Einfügen einer solchen Codezeile die Konfigurationsdatei nicht einschließen kann, wird die die()-Anweisung ausgeführt und die Meldung „Die Datei konnte nicht geöffnet werden“ wird angezeigt gedruckt werden.

!defined('CURSCRIPT') && define('CURSCRIPT', ");//意思是如果没定义CURSCRIPT常量,则定义CURSCRIPT为空.

Variationen davon werden Sie im gesamten Buch und im PHP-Handbuch sehen, da es sich um eine schnelle Möglichkeit handelt, Fehler zu behandeln (aber möglicherweise auch zu überbehandeln), ohne einen benutzerdefinierten Fehlerhandler verwenden zu müssen.

Tatsächlich sind Die und Exit gleichwertig und werden zum Beenden des aktuellen Skripts verwendet, was häufig beim Debuggen von Programmen verwendet wird.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Instanzverwendung des PHP-Fehlerkontrolloperators @ oder die(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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