assert_options

(PHP 4, PHP 5, PHP 7, PHP 8)

assert_optionsDéfinit/récupère différentes options d'assertions

Description

assert_options(int $what, mixed $value = ?): mixed

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

Note: À partir de PHP 7.0.0, l'utilisation de assert_options() est déconseillé en faveur de définir et récupérer les directives php.ini zend.assertions et assert.exception avec ini_set() et ini_get(), respectivement.

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.

La fonction de rappel définie via ASSERT_CALLBACK ou assert.callback devrait avoir la signature suivante :

assert_callback(
    string $file,
    int $line,
    string $assertion,
    string $description = ?
): void
file
Le fichier assert() a été appellé.
line
La ligne où assert() a été appellé.
assertion
L'assertion qui a été fournie à assert(), convertie en une chaîne de caractères.
description
La description qui a été fournie à assert().

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($file$line$assertion$message)
{
    echo 
"L'assertion $assertion dans $file à la ligne $line a échoué : $message";
}

// 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

  • assert() - Vérifie si une assertion est fausse

add a note add a note

User Contributed Notes 1 note

up
1
20 years ago
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 ...
To Top