El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
Nombre | Predeterminado | Variable | Registro de Cambios |
---|---|---|---|
error_reporting | NULL | PHP_INI_ALL | |
display_errors | "1" | PHP_INI_ALL | |
display_startup_errors | "0" | PHP_INI_ALL | |
log_errors | "0" | PHP_INI_ALL | |
log_errors_max_len | "1024" | PHP_INI_ALL | Disponible a partir de PHP 4.3.0. |
ignore_repeated_errors | "0" | PHP_INI_ALL | Disponible a partir de PHP 4.3.0. |
ignore_repeated_source | "0" | PHP_INI_ALL | Disponible a partir de PHP 4.3.0. |
report_memleaks | "1" | PHP_INI_ALL | Disponible a partir de PHP 4.3.0. |
track_errors | "0" | PHP_INI_ALL | |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP <= 4.2.3. |
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Disponible a partir de PHP 4.1.0. |
xmlrpc_error_number | "0" | PHP_INI_ALL | Disponible a partir de PHP 4.1.0. |
docref_root | "" | PHP_INI_ALL | Disponible a partir de PHP 4.3.0. |
docref_ext | "" | PHP_INI_ALL | Disponible a partir de PHP 4.3.2. |
error_prepend_string | NULL | PHP_INI_ALL | |
error_append_string | NULL | PHP_INI_ALL | |
error_log | NULL | PHP_INI_ALL |
He aquí una breve explicación de las directivas de configuración.
Establece el nivel de notificación de errores. El parámetro es un valor de tipo integer que representa un campo de bits, o constantes nominadas. Los niveles de error_reporting y constantes están descritos en Constantes Predefinidas, y en php.ini. Para establecerlo en tiempo de ejecución, use la función error_reporting(). Vea también la directiva display_errors.
En PHP 4 y PHP 5 el valor predeterminado es E_ALL & ~E_NOTICE. Esta configuración no muestra los errores de nivel E_NOTICE. Puede querer mostrarlos durante el desarrollo.
Note:
Habilitar E_NOTICE durante el desarrollo tiene algunos beneficios. Para depuración: los mensajes NOTICE le avisarán de posibles errores en su código. Por ejemplo, se avisa del uso de valores no asignados. Es extremadamente útil para encontrar errartas y ahorrar tiempo de depuración. Los mensajes NOTICE le avisarán sobre un estilo malo. Por ejemplo, $arr[item] es mejor que sea escrito como $arr['item'] ya que PHP intenta tratar "item" como una constante. Si no es una constante, PHP asume que es un índice de cadena del array.
Note:
En PHP 5 está disponible el nuevo nivel de error E_STRICT. Ya que E_STRICT no está incluido dentro de E_ALL tiene que habilitar explícitamente este tipo de nivel de error. Habilitar E_STRICT durante el desarrollo tiene algunos beneficios. Los mensajes STRICT le ayudarán a usar el último y más sugerente método de codificación, por ejemplo le advertirá del uso de funciones obsoletas.
Note: Constantes de PHP fuera de PHP
Usar constantes de PHP fuera de PHP, como en httpd.conf, no tendrá un propósito útil por lo que en tales casos se requerirán los valores de tipo integer. Y ya que se añadirán más niveles de error con el tiempo, el valor máximo (para E_ALL) cambiará igualmente. Por lo que en lugar de E_ALL considere usar un valor grande para cubrir todos los campos de bits desde ahora hasta bien entrado en el futuro, un valor numérico como 2147483647 (incluye todos los errores, no sólo E_ALL).
Determina si los errores deberían ser impresos en pantalla como parte de la salida o si deberían ocultarse al usuario.
El valor "stderr" envía los errores a stderr en vez de a stdout. El valor está disponible a partir de PHP 5.2.4. En versiones anteriores esta directiva era de tipo boolean.
Note:
Esta es una característica para apoyar su desarrollo y nunca debería usarse es sistemas de producción (p.ej. sistemas conectados a internet).
Note:
Aunque display_errors puede ser establecido en tiempo de ejecución (con ini_set ()), no tendrá ningún efecto si el script tiene errores fatales. Esto es porque la acción en tiempo de ejecución deseada no se ejecuta.
Incluso cuando display_errors está activado, los errores que ocurren durante la secuencia de arranque de PHP no se muestran. Se recomienda encarecidamente mantener desactivado display_startup_errors, excepto para depuración.
Indica si los mensajes de error del script deberían de registrarse en el registro del servidor o en error_log. Esta opción es, por lo tanto, específica para servidores.
Note:
Se aconseja encarecidamente usar el registro de errores en lugar de mostrar los errores en sitios web de producción.
Establece la longitud máxima de log_errors en bytes. En error_log se añade información acerca de la fuente. El valor predeterminado es 1024 y 0 permite no aplicar ninguna longitud máxima en absoluto. Esta longitud se aplica a los errores registrados, a los errores mostrados y también a $php_errormsg.
Cuando se usa un número entero, el valor del mismo es medido en bytes. También se puede usar la notación reducida tal como se describe en esta FAQ.No registra mensajes repetidos. Los mensajes repetidos deben ocurrir en el misma línea del mismo archivo a menos que ignore_repeated_source esté establecido a true.
Ignora la fuente del mensaje cuando se ignoran mensajes repetidos. Cuando este ajuste está activado (On) no se registrarán errores con mensajes repetidos de diferentes archivos o líneas fuente.
Si este parámetro está desactivado (Off), no se mostrarán las filtraciones de memoria (en stdout o en el registro). Sólo tiene efecto en una compilación de depuración, y si error_reporting incluye E_WARNING en la lista permitida.
Si está habilitado, el último mensaje de error siempre estará presente en la variable $php_errormsg.
Desactiva las etiquetas HTML en los mensajes de error. El nuevo formato para errores HTML producen mensajes clicables que dirigen al usuario a una página describiendo el error o a la función que causa el error. Estas referencias son afectadas por docref_root y docref_ext.
Desactiva la notificación de errores normal y fortamea los errores como mensajes de error XML-RPC.
Usado como el valor del elemento faultCode de XML-RPC.
El nuevo formato de error contiene una referencia a la página describiendo el error o a la
función que causa el error. En caso de páginas de manual puede descargar el
manual en su idioma y establecer esta directiva ini a la URL de su copia
local. Si su copia local del manual se puede alcanzar mediante "/manual/"
puede usar simplemente docref_root=/manual/
. Además tiene
que establecer docref_ext para que coincida con las extensiones de archivo de su copia
docref_ext=.html
. Es posbile usar referencias
externas. Por ejemplo puede usar
docref_root=http://manual/en/
o
docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon
&url=http%3A%2F%2Fwww.php.net%2F"
La mayoría de las veces querrá que el valor de docref_root termine con una barra "/". Pero vea el segundo ejemplo de arriba, el cuál no la tiene ni la necesita.
Note:
Esta es una característica para apoyar su desarrollo ya que hace más fácil buscar una descripción de una función. Sin embargo, nunca debería usarse en sistemas de producción (p.ej. sistemas conectados a internet).
Véase docref_root.
Note:
El valor de docref_ext debe comenzar con un punto ".".
Cadena a imprimir antes de un mensaje de error.
Cadena a imprimir después de un mensaje de error.
Nombre del archivo donde los errores del script deberían ser registrados. El archivo debería ser modificable por el usuario del servidor web. Si se usa el valor especial syslog, los errores son enviados en su lugar al registro del sistema. En Unix, esto quiere decir syslog(3) y en Windows NT quiere decir el registro de sucesos. El registro de sistema no está soportado en Windows 95. Vea también: syslog(). Si esta directiva no está establecida los errores se enviarán al registro de error de SAPI. Por ejemplo, un registro de error en Apache o stderr en CLI.