Forum und email

assert

(PHP 4, PHP 5)

assert — Prüft ab, ob eine Bedingung oder Abfrage FALSE ist

Beschreibung

int assert ( string|bool $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 pber 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.

Example#1 Überprüfung mit benutzerdefinierter Funktion

<?php
// Active assert and make it quiet
assert_options (ASSERT_ACTIVE1);
assert_options (ASSERT_WARNING0);
assert_options (ASSERT_QUIET_EVAL1);

// 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 ("")');
?>