|
assert
Prüft ab, ob eine Zusicherung BeschreibungPHP 5 und 7
bool assert
( mixed
$assertion
[, string $description
] )PHP 7
bool assert
( mixed
$assertion
[, Throwable $exception
] )
assert überprüft den übergebenen Parameter
Traditionelle Zusicherungen (PHP 5 und 7)
Wird der Parameter
assert sollte nur zum Debuggen des Codes
verwendet werden. Es kann für Plausibilitätsprüfungen verwendet werden, um
auf Bedingungen zu prüfen, die immer Zusicherungen sollten nicht für normale Laufzeitoperationen wie die Überprüfung von Eingaben verwendet werden. Als Faustregel sollte der Code immer korrekt funktionieren können, auch wenn die Zusicherungsüberprüfung deaktiviert ist. Die Optionen für die assert können über die Funktion assert_options oder durch ini Settings, die in der Handbuchseite dieser Funktion beschrieben werden, eingestellt werden.
Die Funktion assert_options und/oder die
Callback-Funktionen in Zusammenhang mit assert sind nützlich, um beispielsweise automatisierte Tests durchzuführen, da die Callback-Funktion über die Information verfügt, von welcher Stelle sie aufgerufen wurde. Auch wenn diese Information mit anderen Methoden zugänglich ist, macht es die Verwendung von Zusicherungen viel schneller und leichter!
Die Callback-Funktion wird mit drei Parametern aufgerufen. Der
erste Parameter enthält den Namen des Scripts, in dem
die Überprüfung statt fand, der zweite Parameter die
Zeilennummer, und der dritte Paramter enthält die über
Erwartungen (nur PHP 7)assert ist in PHP 7 ein Sprachkonstrukt, das die Definition von Annahmen ermöglicht: Zusicherungen, die in Entwicklungs- und Testumgebungen wirken, aber so optimiert werden, dass sie in Produktionsumgebungen keinen Mehraufwand verursachen. Während assert_options noch immer verwendet werden kann, um das oben beschriebene Verhalten aus Gründen der Abwärtskompatibilität zu steuern, sollte Code, der nur für PHP 7 geschrieben wird, die beiden neuen Konfigurationsoptionen zur Steuerung von assert verwenden, und nicht assert_options aufrufen.
Parameter-Liste
Rückgabewerte
Changelog
BeispieleTraditionelle Zusicherungen (PHP 5 und 7)
Beispiel #1 Überprüfung mit benutzerdefinierter Funktion
<?php
Beispiel #2 Verwendung eines benutzerdefinierten Handlers um eine Beschreibung anzuzeigen
<?phpDas oben gezeigte Beispiel erzeugt folgende Ausgabe: Zusicherung fehlgeschlagen in test.php:21: 2 < 1 Zusicherung fehlgeschlagen in test.php:22: 2 < 1: Zwei ist kleiner als Eins Annahmen (nur PHP 7)Beispiel #3 Annahmen ohne benutzerdefinierte Exception
<?phpIst zend.assertions auf 0 gesetzt, gibt das obige Beispiel aus: Hi! Ist zend.assertions auf 1 und assert.exception auf 0 gesetzt, gibt das obige Beispiel aus: Warning: assert(): assert(true == false) failed in - on line 2 Hi! Ist zend.assertions auf 1 und assert.exception auf 1 gesetzt, gibt das obige Beispiel aus:
Fatal error: Uncaught AssertionError: assert(true == false) in -:2
Stack trace:
#0 -(2): assert(false, 'assert(true == ...')
#1 {main}
thrown in - on line 2
Beispiel #4 Annahmen mit einer benutzerdefinierten Exception
<?phpIst zend.assertions auf 0 gesetzt, gibt das obige Beispiel aus: Hi! Ist zend.assertions auf 1 und assert.exception auf 0 gesetzt, gibt das obige Beispiel aus:
Warning: assert(): CustomError: True ist nicht false! in -:4
Stack trace:
#0 {main} failed in - on line 4
Hi!
Ist zend.assertions auf 1 und assert.exception auf 1 gesetzt, gibt das obige Beispiel aus:
Fatal error: Uncaught CustomError: True ist nicht false! in -:4
Stack trace:
#0 {main}
thrown in - on line 4
Siehe auch
|