Assert () ist eine sehr einzigartige und nützliche Funktion in PHP, die hauptsächlich zum Debugging und Codeüberprüfung verwendet wird. Sein Zweck ist es, Behauptungen vorzulegen, und wenn das Ergebnis des Ausdrucks falsch ist, wird ein Fehler oder eine Warnung geworfen. Es wird normalerweise verwendet, um festzustellen, ob die Programmannahmen in der Entwicklung zutreffen, und sicherzustellen, dass der Code dem erwarteten Verhalten während des Betriebs entspricht.
In PHP wird die Funktion assert () verwendet, um zu überprüfen, ob ein gegebener Ausdruck wahr ist. Wenn die Behauptung fehlschlägt, wirft sie eine Warnung (oder einen Fehler) aus, der normalerweise zum Debuggen des Codes verwendet wird.
assert(mixed $assertion): bool;
$ Assertion : Ein Ausdruck, der wahr oder falsch zurückgibt.
Rückgabewert: Wenn Assert wahr ist, gibt Assert () true zurück, ansonsten falsch .
<?php
$x = 10;
assert($x > 5); // Diese Behauptung gilt,Keine Warnung ausgelöst
assert($x < 5); // Die Behauptung schlug fehl,Wird eine Warnung auslösen
?>
In diesem Beispiel wird ($ x> 5) erfolgreich bestanden und ($ x <5) eine Warnung ausgelöst.
Das Verhalten der Funktion assert () kann durch Einstellen in der PHP -Konfigurationsdatei php.ini geändert werden. Beispielsweise können Sie einen benutzerdefinierten Handler einrichten oder Behauptungen aktivieren oder deaktivieren. Häufige Konfigurationsoptionen sind wie folgt:
Diese Option wird verwendet, um Behauptungen zu aktivieren oder zu deaktivieren. Durch das Einstellen von 1 bedeutet dies, dass die Behauptung aktiviert ist und die Behauptung auf 0 deaktivieren wird.
zend.assertions = 1 // Behauptung aktivieren
Wenn Assert () aktiviert ist und die Behauptung nicht geworfen wird. Wenn ein Assertion -Fehler auf 1 gesetzt ist, wird eine AssertionError -Ausnahme ausgelöst.
assert.exception = 1 // Wirf eine Ausnahme, wenn die Behauptung fehlschlägt
Während der Entwicklung werden häufig Behauptungen verwendet, um die Annahmen des Codes zu überprüfen. Sie können Entwicklern helfen, potenzielle Probleme frühzeitig zu erkennen, anstatt zu warten, bis das Programm ausgeführt wird. Stellen Sie beispielsweise sicher, dass die Eingabeparameter einer Funktion wie erwartet sind:
function divide($a, $b) {
assert($b != 0, 'Der Divisor kann nicht Null sein');
return $a / $b;
}
In diesem Beispiel prüft Assert () , ob $ B Null ist, und wenn ja, schlägt die Behauptung fehl und ein Fehler wird geworfen.
In Unit -Tests kann Assert () verwendet werden, um zu überprüfen, ob das Verhalten einer Funktion oder Methode wie erwartet ist. Zum Beispiel sollte eine Funktion immer einen positiven Wert zurückgeben:
function getPositiveNumber($num) {
assert($num > 0, 'Der Rückgabewert muss eine positive Zahl sein');
return $num;
}
Assert () kann auch verwendet werden, um die Leistung zu optimieren. Wenn ein Betrieb unter bestimmten Bedingungen überflüssig ist, können Sie überprüfen, ob diese Bedingungen durch Behauptungen erfüllt werden, um unnötige Berechnungen oder Verarbeitung zu vermeiden.
Wenn die Behauptung fehlschlägt, verhalten sich PHP je nach Konfiguration unterschiedlich. Standardmäßig löst eine fehlgeschlagene Behauptung eine Warnmeldung aus, die dem folgenden Formular ähnelt:
Warning: assert(): Assertion failed in /path/to/file.php on line X
Wenn Assert.Exception auf 1 festgelegt ist, wird eine AsSerTionRror -Ausnahme ausgelöst und der Entwickler kann sie in Ausnahmebehandlung fangen.
try {
assert($x > 5); // Die Behauptung schlug fehl会抛出异常
} catch (AssertionError $e) {
echo 'Behauptung scheiterte: ' . $e->getMessage();
}
PHP ermöglicht es uns auch, das Verhalten granularer zu steuern, wenn die Behauptung den Fehlerbehandlungsmechanismus von Assert () fehlschlägt. Sie können eine Rückruffunktion über Assert_Callback festlegen und sie aufrufen, wenn die Behauptung fehlschlägt.
assert_options(ASSERT_CALLBACK, function ($file, $line, $code) {
echo "Behauptung scheiterte:dokumentieren $file,1. $line OK,Code $code";
});
Dadurch wird die Ausgabemethode von Assert () angepasst, wenn sie ausfällt, und hilft den Entwicklern, Probleme besser zu lokalisieren.
In Produktionsumgebungen wird normalerweise nicht empfohlen, Behauptungen einzuschalten, da sie die Leistung beeinflussen können. In einer Produktionsumgebung können Sie Behauptungen deaktivieren, indem Sie die Konfigurationsdatei php.ini ändern:
zend.assertions = -1 // Behauptungen deaktivieren
Auf diese Weise hat Assert () keine Auswirkungen auf die Ausführung des Programms und vermeiden Leistungsverluste.
Behauptungen sind nur ein Tool für Entwicklungszeiten und sollten in Produktionsumgebungen deaktiviert werden.
Die Behauptung selbst beeinflusst nicht die Logik des Programms, sondern wird nur während des Debuggens als Überprüfungswerkzeug verwendet.
Wenn eine Behauptung fehlschlägt, kann der Detailgrad der Fehlermeldung je nach Konfiguration variieren.
Die Funktion assert () ist ein sehr nützliches Debugging -Tool in PHP, mit dem Entwickler potenzielle Fehler oder Verhaltensweisen fangen können, die die Erwartungen während der Entwicklung nicht erfüllen. Durch angemessene Konfiguration und Verwendung kann Assert () nicht nur die Zuverlässigkeit des Codes verbessern, sondern auch die Fehlerpositionierung während des Entwicklungsprozesses optimieren. Es ist jedoch zu beachten, dass Behauptungen in Produktionsumgebungen deaktiviert werden sollten, um sicherzustellen, dass die Programmleistung nicht beeinträchtigt wird.