PHP
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

assert> <Fonctions sur les options et les informations de PHP
Last updated: Fri, 26 Dec 2008

view this page in

assert_options

(PHP 4, PHP 5)

assert_optionsFixe et lit différentes options d'assertions

Description

mixed assert_options ( int $what [, mixed $value ] )

Avec assert_options(), vous pouvez modifier les diverses options de la fonction assert(), ou simplement connaître la configuration actuelle.

Liste de paramètres

what

Options d'assertions
Option Directive Valeur par défaut Description
ASSERT_ACTIVE assert.active 1 active l'évaluation de la fonction assert()
ASSERT_WARNING assert.warning 1 génère une alerte PHP pour chaque assertion fausse
ASSERT_BAIL assert.bail 0 termine l'exécution en cas d'assertion fausse
ASSERT_QUIET_EVAL assert.quiet_eval 0 désactive le rapport d'erreur durant l'évaluation d'une assertion
ASSERT_CALLBACK assert.callback (NULL) fonction de rappel utilisateur, pour le traitement des assertions fausses

value

Une nouvelle valeur, optionnelle, pour l'option.

Valeurs de retour

Retourne la valeur originale de l'option, ou bien FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec assert_options()

<?php
// Ceci est notre fonction pour gérer les
// erreurs d'assertion
function assert_failure()
{
        echo 
'Échec de l\'assertion';
}

// Ceci est notre fonction de test
function test_assert($parameter)
{
        
assert(is_bool($parameter));
}

// Définit nos options d'assertion
assert_options(ASSERT_ACTIVE,   true);
assert_options(ASSERT_BAIL,     true);
assert_options(ASSERT_WARNING,  false);
assert_options(ASSERT_CALLBACK'assert_failure');

// Une assertion qui doit Ã©chouée
test_assert(1);

// Ceci n'est jamais atteint, car ASSERT_BAIL
// vaut true
echo 'Jamais atteint';
?>

Voir aussi



add a note add a note User Contributed Notes
assert_options
gherson at snet dot net
31-Oct-2007 04:58
After being set to 1, my assert_options(ASSERT_BAIL) value stubbornly stayed there until Apache was restarted, returning it to its default of 0.
(Reproducible on my PHP Version 5.1.2, Apache/2.2.0 (Win32))
webmaster at eiscp dot de
24-Oct-2007 09:45
For all of you try to throw an exception in assert callback function you must set options in following form:

<?php
error_reporting
(E_ALL | E_STRICT);

function
assert_callcack($file, $line, $message) {
    throw new
Exception();
}

assert_options(ASSERT_ACTIVE,     1);
assert_options(ASSERT_WARNING,    0);
assert_options(ASSERT_BAIL,       0);
assert_options(ASSERT_QUIET_EVAL, 0);
assert_options(ASSERT_CALLBACK,   'assert_callcack');

try {
   
assert(false);
} catch (
Exception $e) {
    echo
'Yes';
}
?>
Frédéric Bouchery
21-Jul-2003 01:25
Here is an exemple how to use the assertion callback function :

<?php
  assert_options
( ASSERT_CALLBACK, 'assert_callback');

  function
assert_callback( $script, $line, $message ) {
    echo
'You have a design error in your script <b>', $script,'</b> : line <b>', $line,'</b> :<br />';
    echo
'<b>', ereg_replace( '^.*//\*', '', $message ), '</b><br /><br />';
    echo
'Open the source file and check it, because it\'s not a normal behaviour !';
    exit;
  }

 
$x = 3;
 
assert('is_integer( $x ) && ($x >= 0) && ($x <= 10); //* $x must be an integer value from 0 to 10' );
  echo
"0 <= $x <= 10";
?>

assertion is usefull for "design by contract" methodology ...

 
show source | credits | sitemap | contact | advertising | mirror sites