Descripción
int
assert ( mixed asercion)
assert() revisará
la asercion dada y tomará una
acción apropiada si su resultado es FALSE.
Si la asercion es dada como una cadena,
ésta será evaluada como código PHP
por assert(). Las ventajas de
una asercion tipo cadena son menor
sobrecarga cuando el chequeo de aserciones se encuentre
deshabilitado, y la producción de mensajes que contengan
la expresión asercion cuando
ésta falle. Esto quiere decir que si pasa una
condición booleana como asercion,
ésta condición no aparecerá como
parámetro de la función de aserción, la cual
pudo haber definido con la
función assert_options(), la
condición es convertida en una cadena antes de llamar tal
función gestora, y el valor booleano FALSE es convertido
como una cadena vacía.
Las aserciones deben ser usadas como una característica de
depuración únicamente. Puede usarlas para realizar
chequeos de integridad que prueben condiciones que
deberían ser siempre TRUE y que indiquen algunos errores
de programación si no se cumplen, o que chequeen por la
presencia de ciertas características como las funciones de
extensión, o ciertos límites y
características de sistema.
Las aserciones no deberían ser usadas para operaciones
normales de tiempo de ejecución como chequeos de
parámetros de entrada. Como regla de oro, su código
debería trabajar correctamente siempre si el chequeo de
aserciones no está activado.
El comportamiento de assert() puede ser
configurado por assert_options() o mediante
los parámetros .ini descritos en su respectiva
página del manual.
La función assert_options() o la
directiva de configuración ASSERT_CALLBACK permiten el uso
de llamadas de retorno para gestionar las aserciones fallidas.
Las llamadas de retorno de assert() son
particularmente útiles para productos que prueben procesos
automatizados de generación, ya que le permitin capturar
fácilmente el código pasado a la aserción,
junto con información sobre dónde se creó la
aserción. Aunque esta información puede ser
capturada mediante otros métodos, ¡el uso de
aserciones lo hace mucho más rápido y sencillo!
La llamada de retorno debe aceptar tres argumentos. El primer
argumento contendrá el archivo en el que ha fallado la
aserción. El segundo argumento contendrá la
línea en la que falló la aserción, y el
tercer argumento contendrá la expresión que
falló (si está disponible - valores literales como
1 o "dos" no serán pasados a través de este
argumento).
Ejemplo 1. Gestionar una aserción fallida con una
función personalizada
<?php // Activar las aserciones y hacerlas calladas assert_options(ASSERT_ACTIVE, 1); assert_options(ASSERT_WARNING, 0); assert_options(ASSERT_QUIET_EVAL, 1);
// Crear una funcion gestora function mi_gestor_de_asercion($archivo, $linea, $codigo) { echo "<hr>Aserción Fallida: Archivo '$archivo'<br /> Linea '$linea'<br /> Codigo '$codigo'<br /><hr />"; }
// Configurar la llamada de retorno assert_options(ASSERT_CALLBACK, 'mi_gestor_de_asercion');
// Crear una aserción que debería fallar assert('mysql_query ("")'); ?>
|
|