assert_options

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

assert_optionsDefine/recupere diferentes opciones de aserciones

Advertencia

Esta función ha sido declarada OBSOLETA a partir de PHP 8.3.0. Su uso está totalmente desaconsejado.

Descripción

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

assert_options() permite modificar las diversas opciones de la función assert(), o simplemente conocer la configuración actual.

Nota: El uso de assert_options() no se recomienda en favor de definir y recuperar las directivas php.ini zend.assertions y assert.exception con ini_set() y ini_get(), respectivamente.

Parámetros

option

Opciones de aserciones
Opción Directiva Valor por omisión Descripción
ASSERT_ACTIVE assert.active 1 Activa la evaluación de la función assert()
ASSERT_EXCEPTION assert.exception 1 Lanza una AssertionError para cada aserción fallida
ASSERT_WARNING assert.warning 1 Genera una alerta PHP para cada aserción falsa
ASSERT_BAIL assert.bail 0 Termina la ejecución en caso de aserción falsa
ASSERT_QUIET_EVAL assert.quiet_eval 0 Desactiva el informe de error durante la evaluación de una aserción. Eliminada a partir de PHP 8.0.0
ASSERT_CALLBACK assert.callback (null) Función de devolución de llamada del usuario, para el tratamiento de aserciones falsas

value

Un nuevo valor, opcional, para la opción.

La función de devolución de llamada definida mediante ASSERT_CALLBACK o assert.callback debería tener la siguiente firma:

assert_callback(
    string $file,
    int $line,
    ?string $assertion,
    string $description = ?
): void
file
El fichero donde assert() fue llamado.
line
La línea donde assert() fue llamado.
assertion
Antes de PHP 8.0.0, el primer parámetro de la función assert() era la aserción pasada, pero solo cuando la aserción se proporcionaba como string. (Si la aserción era una condición booleana, este parámetro era una cadena vacía.) A partir de PHP 8.0.0, este parámetro es siempre null.
description
La descripción que se proporcionó a assert().

Valores devueltos

Devuelve el valor original de la opción.

Errores/Excepciones

Si option no es una opción válida, se lanza una ValueError.

Historial de cambios

Versión Descripción
8.3.0 assert_option() ahora está obsoleto.
8.0.0 Si option no es una opción válida, se lanza una ValueError. Anteriormente, se devolvía false.

Ejemplos

Ejemplo #1 Ejemplo con assert_options()

<?php
// Esta es nuestra función para manejar
// los errores de aserción
function assert_failure($file, $line, $assertion, $message)
{
echo
"La aserción $assertion en $file en la línea $line ha fallado: $message";
}

// Esta es nuestra función de prueba
function test_assert($parameter)
{
assert(is_bool($parameter));
}

// Define nuestras opciones de aserción
assert_options(ASSERT_ACTIVE, true);
assert_options(ASSERT_BAIL, true);
assert_options(ASSERT_WARNING, false);
assert_options(ASSERT_CALLBACK, 'assert_failure');

// Una aserción que debe fallar
test_assert(1);

// Esto nunca se alcanza, ya que ASSERT_BAIL
// es true
echo 'Nunca alcanzado';
?>

Ver también

add a note

User Contributed Notes 1 note

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