(PHP 4, PHP 5)
assert —
Prüft ab, ob eine Bedingung oder Abfrage FALSE
ist
$assertion
)
assert() überprüft den übergebenen Parameter
assertion
und führt ein über die Funktion
assert_options() definiertes Ereignis aus,
falls die in assertion
spezifizierte Bedingung FALSE
ist.
Wird der Parameter assertion
als String
übergeben, so wird der String als PHP-Code interpretiert. Der
Vorteil der Übergabe des Parameters
assertion
als Zeichenkette liegt darin,
dass die ausgegebene Meldung die über
assertion
übergebene Zeichenkette enthält.
assert() sollte nur zum Debuggen des Codes und nicht in Produktionsumgebungen verwendet werden werden, beispielsweise zur Überprüfung von Eingaben.
Die Optionen für die assert() können über die Funktion assert_options() oder in den Einstellungen der .ini-Datei gesetzt werden.
Die Funktion assert_options() mit der ASSERT_CALLBACK Direktive ermöglicht eine Funktion anzugeben, die bei fehlender Überprüfung aufgerufen wird.
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.
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
assertion
angegebene Bedingung.
Beispiel #1 Überprüfung mit benutzerdefinierter Funktion
<?php
// Active assert and make it quiet
assert_options (ASSERT_ACTIVE, 1);
assert_options (ASSERT_WARNING, 0);
assert_options (ASSERT_QUIET_EVAL, 1);
// Create a handler function
function my_assert_handler ($file, $line, $code) {
echo "<hr>Assertion Failed:
File '$file'<br>
Line '$line'<br>
Code '$code'<br><hr>";
}
// Set up the callback
assert_options (ASSERT_CALLBACK, 'my_assert_handler');
// Make an assertion that should fail
assert ('mysql_query ("")');
?>