assert_options

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

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonction est fortement déconseillé.

Description

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

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

Note: L'utilisation de assert_options() est déconseillée 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

option

Options d'assertions
Option Directive Valeur par défaut Description
ASSERT_ACTIVE assert.active 1 Active l'évaluation de la fonction assert()
ASSERT_EXCEPTION assert.exception 1 Lance une AssertionError pour chaque assertion échouée
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. Supprimée à partir de PHP 8.0.0
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
Antérieur à PHP 8.0.0, le premier paramètre de la fonction assert() était l'assertion passée, mais seulement lorsque l'assertion était fournie sous forme de chaîne de caractères. (Si l'assertion était une condition booléenne, ce paramètre était une chaîne vide.) À partir de PHP 8.0.0, ce paramètre est toujours null.
description
La description qui a été fournie à assert().

Valeurs de retour

Retourne la valeur originale de l'option.

Erreurs / Exceptions

Si option n'est pas une option valide, une ValueError est lancée.

Historique

Version Description
8.3.0 assert_option() est désormais obsolète.
8.0.0 Si option n'est pas une option valide, une ValueError est désormais lancée. Auparavant, false était retourné.

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

add a note

User Contributed Notes 1 note

up
4
Fr?d?ric Bouchery
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