PHP
Referenzliste
assert
PHP-Informationen
Befehl:
bool assert ( mixed $assertion [, string $description ] )
Parameter-Liste:
Beschreibung | |
---|---|
Die Behauptung. | |
Eine optionale Beschreibung, die in der Fehlermeldung enthalten sein werden, wenn die Assertion fehlschlägt. |
Beschreibung:
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.
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.
Aktiv in Version:
(PHP 4, PHP 5, PHP 7)
Siehe auch:
assert() - Beispiel: Überprüfung mit benutzerdefinierter Funktion
Eingabe:
<?php // Aktive geltend zu machen und machen es ruhig assert_options (ASSERT_ACTIVE, 1); assert_options (ASSERT_WARNING, 0); assert_options (ASSERT_QUIET_EVAL, 1); // Erstellt einen Handler-Funktion function my_assert_handler ($file, $line, $code) { echo "<hr>Assertion Failed: File '$file'<br> Line '$line'<br> Code '$code'<br><hr>"; } // Richtet den Rückruf assert_options (ASSERT_CALLBACK, 'my_assert_handler'); // Macht eine Aussage, die ausfallen sollte assert ('mysql_query ("")'); ?>
Beschreibung:
Beschreibung | |
---|---|
5.4.8 | Die description -Parameter hinzugefügt. Die description ist jetzt auch auf eine Callback-Funktion in ASSERT_CALLBACK -Modus als viertes Argument bereitgestellt . |
assert() - Beispiel 2:
Eingabe:
<?php /** * Set Assertion Debug * * Diese Methode prüft die gegebene Behauptung und geeignete - * Aktion, wenn das Ergebnis ist FALSE. * * Diese Datei ist Teil des Rahmenprogramms Ikac(. * * @package Ikac Framework * @author Ivan Stojmenovic Ikac <contact.@stojmenovic.info> * * @param mixed $assertion Die Behauptung. * @param mixed $callback Rückruf auf fehlgeschlagenen Aussagen ausgeführt * @param array $options Stellen Sie die verschiedenen Steuerungsmöglichkeiten * oder einfach nur ihre aktuellen Einstellungen abfragen. * @param string $description Eine optionale Beschreibung, die in der Fehlermeldung * enthalten sein werden, wenn die Assertion fehlschlägt. */ public function setAssertionDebug($assertion, $callback, array $options, $description = null) { if (is_array($options)) { foreach ($options AS $option => $value) { assert_options($option, $value); } } if ($callback) { assert_options(ASSERT_CALLBACK, $callback); } return assert($assertion, $description); } ?>
Wie zu verwenden:
<?php use Ikac\Component\SystemBehaviour\OptionsInfo; $system = new OptionsInfo(); $option = array(ASSERT_ACTIVE => 1,ASSERT_WARNING => 0,ASSERT_QUIET_EVAL => 1); $system->setAssertionDebug('2<1', function(){ echo "Assertion failed"; }, $option); ?>
Beschreibung:
Beschreibung | |
---|---|
5.4.8 | Die description -Parameter hinzugefügt. Die description ist jetzt auch auf eine Callback-Funktion in ASSERT_CALLBACK -Modus als viertes Argument bereitgestellt . |
assert() - Beispiel 3:
Eingabe:
<?php ////////////////////////////////////////////////////////////////////// /// phpxAssertHandler_f ////////////////////////////////////////////////////////////////////// /** * @desc Handler, die richtet auch behaupten Optionen, wenn nicht als Handler aufgerufen wird Immer tödlich, wenn Assertion schlägt fehl Achten Sie immer darauf Behauptung ist aktiviert Kann nicht auf anderen Code hängen nicht mit zu machen oder mit ihren eigenen behaupten Handler! USAGE: // gestalten Fehler Niveau Behauptung (php assert_options () erlaubt nur E_WARNING oder überhaupt nichts): phpxAssertHandler_f(E_USER_NOTICE); // Kontrolle Behauptung aktiven Zustand: nichts abhängig weiteres Stück Code könnte mit ASSERT_ACTIVE tun $ GLOBALS ['MY_ASSERT_ACTIVE'] = false; phpxAssertHandler_f(E_USER_NOTICE,$GLOBALS['MY_ASSERT_ACTIVE']); // verwenden alternate Behauptung Callback-Funktion: // HINWEIS: pass null als benutzerdefinierte Optionen Parameter auf Standard-Optionen verwenden // HINWEIS: pass keine Werte für behaupten options-Parameter Array-Elemente zu Standard-Optionen verwenden $GLOBALS['MY_ASSERT_ACTIVE']=false; $GLOBALS['MY_ASSERT_CALLBACK']='myAssertCallback'; phpxAssertHandler_f( null, array( 0=>$GLOBALS['MY_ASSERT_ACTIVE'], 3=>$GLOBALS['MY_ASSERT_CALLBACK'], ) ); * @param mixed = file or options * @param line * @param code * @return void */ function phpxAssertHandler_f($file_or_custom_options=null, $line_or_assert_options=null, $code=null){ static $custom_options; $debug = false; if (is_null($code)){ // set default assert_options $assert_options[]=1;//ASSERT_ACTIVE $assert_options[]=0;//ASSERT_WARNING - $assert_options[]=0;//ASSERT_QUIET_EVAL $assert_options[]=__FUNCTION__;//ASSERT_CALLBACK // set default custom_options $custom_options[]=E_USER_ERROR;// error level if (!is_null($line_or_assert_options)){ // assert_options werden übergeben if (!is_array($line_or_assert_options)){ $line_or_assert_options=array($line_or_assert_options); } foreach ($line_or_assert_options as $i=>$assert_option){ if ($assert_option===true) $assert_option=1; if ($assert_option===false) $assert_option=0; $assert_options[$i]=$assert_option; if($debug) echo ("assert_options[$i]=$assert_option\n"); } } if (!is_null($file_or_custom_options)){ // custom_options werden übergeben if (!is_array($file_or_custom_options)){ $file_or_custom_options=array($file_or_custom_options); } foreach ($file_or_custom_options as $i=>$custom_option){ if ($custom_option===true) $custom_option=1; if ($custom_option===false) $custom_option=0; $custom_options[$i]=$custom_option; if($debug) echo ("custom_options[$i]=$custom_option\n"); } } // gesetzt behaupten Optionen @assert_options (ASSERT_ACTIVE, $assert_options[0]); @assert_options (ASSERT_WARNING, $assert_options[1]); @assert_options (ASSERT_QUIET_EVAL, $assert_options[2]); @assert_options (ASSERT_CALLBACK, $assert_options[3]); } else { // sind wir als Callback-Funktion handeln $file = $file_or_custom_options; $line = $line_or_assert_options; $msg="ASSERTION FAILED: $code"; phpxErrorHandler_f ($custom_options[0],$msg,$file,$line); } }//phpxAssertHandler_f() ?>
Beschreibung:
Beschreibung | |
---|---|
5.4.8 | Die description -Parameter hinzugefügt. Die description ist jetzt auch auf eine Callback-Funktion in ASSERT_CALLBACK -Modus als viertes Argument bereitgestellt . |
assert() - Beispiel 4:
Eingabe:
<?php assert_options(ASSERT_ACTIVE, 1); assert_options(ASSERT_WARNING, 0); assert_options(ASSERT_BAIL, 1); assert_options(ASSERT_CALLBACK, 'dcb_callback'); function dcb_callback($script, $line, $message) { echo "<h1>Condition failed!</h1><br /> Script: <strong>$script</strong><br /> Line: <strong>$line</strong><br /> Condition: <br /><pre>$message</pre>"; } // Parameters $a = 5; $b = 'Simple DCB with PHP'; // Pre-Condition assert(' is_integer($a) && ($a > 0) && ($a < 20) && is_string($b) && (strlen($b) > 5); '); // Function function combine($a, $b) { return "Kombined: " . $b . $a; } $result = combine($a, $b); // Post-Condition assert(' is_string($result) && (strlen($result) > 0); '); // Alles klar, funktioniert die Funktion feinen var_dump($result); ?>
Beschreibung:
Beschreibung | |
---|---|
5.4.8 | Die description -Parameter hinzugefügt. Die description ist jetzt auch auf eine Callback-Funktion in ASSERT_CALLBACK -Modus als viertes Argument bereitgestellt . |
PHP-Informationen