El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
Nombre | Por defecto | Cambiable | Historial de cambios |
---|---|---|---|
error_reporting | NULL | INI_ALL |
|
display_errors | "1" | INI_ALL |
|
display_startup_errors | "1" | INI_ALL |
Anterior a PHP 8.0.0, el valor por omisión era "0" .
|
log_errors | "0" | INI_ALL |
|
log_errors_max_len | "1024" | INI_ALL |
Sin efecto a partir de PHP 8.0.0, eliminado a partir de PHP 8.1.0. |
ignore_repeated_errors | "0" | INI_ALL |
|
ignore_repeated_source | "0" | INI_ALL |
|
report_memleaks | "1" | INI_ALL |
|
track_errors | "0" | INI_ALL |
Deprecado a partir de PHP 7.2.0, eliminado a partir de PHP 8.0.0. |
html_errors | "1" | INI_ALL |
|
xmlrpc_errors | "0" | INI_SYSTEM |
|
xmlrpc_error_number | "0" | INI_ALL |
|
docref_root | "" | INI_ALL |
|
docref_ext | "" | INI_ALL |
|
error_prepend_string | NULL | INI_ALL |
|
error_append_string | NULL | INI_ALL |
|
error_log | NULL | INI_ALL |
|
error_log_mode | 0o644 | INI_ALL |
Disponible a partir de PHP 8.2.0. |
syslog.facility | "LOG_USER" | INI_SYSTEM |
Disponible a partir de PHP 7.3.0. |
syslog.filter | "no-ctrl" | INI_ALL |
Disponible a partir de PHP 7.3.0. |
syslog.ident | "php" | INI_SYSTEM |
Disponible a partir de PHP 7.3.0. |
He aquí una breve explicación de las directivas de configuración.
error_reporting
int
Establece el nivel de error. Este parámetro es un entero, representando un campo de bits. Añada los valores siguientes para elegir el nivel que desee, tal como se describe en la sección Constantes predefinidas, y en el archivo php.ini. Para modificar esta configuración durante la ejecución del script, utilice la función error_reporting(). Consulte también la directiva display_errors.
El valor por omisión es E_ALL
.
Anterior a PHP 8.0.0, el valor por omisión era :
.
Esto significa que los diagnósticos de nivel E_ALL
&
~E_NOTICE
&
~E_STRICT
&
~E_DEPRECATED
E_NOTICE
,
E_STRICT
y E_DEPRECATED
no eran mostrados.
Nota: Las constantes PHP fuera de PHP
El uso de las constantes PHP fuera de PHP, como en el archivo httpd.conf, no tiene significado útil excepto en los casos donde se necesitan valores enteros. Y desde que los niveles de errores fueron añadidos, el valor máximo (para
E_ALL
) debería cambiar. Por lo tanto, en lugar deE_ALL
, utilice un valor más grande para cubrir todos los bits, un valor numérico como2147483647
(incluyendo todos los errores, y no solo los errores de tipoE_ALL
).
display_errors
string
Esta directiva determina si los errores deben ser mostrados en pantalla o no.
El valor "stderr"
envía los errores a stderr
en lugar de a stdout
.
Nota:
Es una directiva necesaria en desarrollo, pero que nunca debe ser utilizada en un sistema en producción. (ej. sistemas conectados a Internet).
Nota:
Aunque display_errors puede ser definido durante la ejecución (con la función ini_set()), no tendrá efecto si el script tiene errores fatales, ya que la acción deseada en el momento de la ejecución no será ejecutada.
display_startup_errors
bool
Aunque display_errors esté activado, pueden ocurrir errores durante la secuencia de inicio de PHP, y estos errores son ocultados. Con esta opción, puede mostrarlos, lo cual es recomendado para el depurado. Fuera de este caso, se recomienda encarecidamente dejar display_startup_errors en off.
log_errors
bool
Indica si los mensajes de error generados por los scripts deben ser registrados en el registro de errores del servidor o en error_log. Esta función es específica del servidor.
Nota:
Se recomienda utilizar el historial de errores, en lugar de mostrar los errores en los sitios de producción.
log_errors_max_len
int
Configura la longitud máxima de los errores que serán registrados en el historial, en kilobytes. En las informaciones de error_log, se añade el origen. El valor por omisión es de 1024. 0 significa que no hay límite de longitud. Esta longitud se aplica para registrar en el historial los errores, mostrar los errores y también a $php_errormsg pero no para las llamadas explícitas a funciones como error_log().
Cuando se usa un integer, el valor del mismo es medido en bytes. También se puede usar la notación reducida, tal como se describe en esta FAQ.ignore_repeated_errors
bool
No registrar mensajes repetitivos. Los errores repetidos
deben ocurrir en el mismo momento, en la misma línea y desde el mismo archivo de script,
a menos que ignore_repeated_source
esté definido a true
.
ignore_repeated_source
bool
Ignora la fuente del mensaje en los mensajes repetidos. Cuando se ha configurado esta opción a On, no se registrarán los errores repetidos provenientes de archivos y líneas de código diferentes.
report_memleaks
bool
Si este parámetro está definido a On (por omisión), mostrará un informe de
fuga de memoria detectada por el gestor de memoria Zend. Este informe
será enviado a stderr en las plataformas Posix. En Windows, será
enviado al depurador utilizando OutputDebugString() y podrá ser leído
con herramientas como » DbgView.
Este parámetro solo tiene efecto durante una compilación de depuración, y si
error_reporting incluye E_WARNING
en su lista autorizada.
track_errors
bool
Si esta opción está activada, el último mensaje de error será colocado en la variable $php_errormsg.
html_errors
bool
Si está activado, los mensajes de error incluirán etiquetas HTML. El formato de los errores HTML producirá mensajes clicables que redirigirán al usuario hacia una página describiendo el error o la función que causó el error. Estas referencias son afectadas por docref_root y docref_ext.
Si está desactivado, el mensaje de error será mostrado en texto plano.
xmlrpc_errors
bool
Si está activado, desactiva el informe normal de error y formatea los errores como mensajes de error XML-RPC.
xmlrpc_error_number
int
Utilizado como valor del elemento XML-RPC faultcode.
docref_root
string
El nuevo formato de error contiene una referencia a una página describiendo
el error, o la función que causó el error. Para el manual, puede
descargar este último en su idioma, y configurar esta opción para que apunte a él. Si su copia del manual es accesible a
"/manual/"
, puede simplemente utilizar
docref_root=/manual/
. Además, debe configurar
docref_ext
para que corresponda a las extensiones de su manual.
docref_ext=.html
. Es posible utilizar referencias externas. Por ejemplo, puede utilizar
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, se utiliza la opción docref_root con una barra al final ("/"
).
Pero no es obligatorio, como muestra el segundo ejemplo anterior.
Nota:
Esta directiva está destinada a ayudar en el desarrollo haciendo fácil la consulta de la descripción de una función. Nunca debe ser utilizada en un sistema de producción (ej. sistema conectado a Internet).
docref_ext
string
Consulte también docref_root.
Nota:
El valor de docref_ext debe comenzar con un punto
"."
.
error_prepend_string
string
La cadena a colocar antes de los mensajes de error. Solo utilizado cuando el mensaje de error es mostrado en pantalla. El uso principal es poder añadir etiquetado HTML adicional antes del mensaje de error.
error_append_string
string
La cadena a colocar después de los mensajes de error. Solo utilizado cuando el mensaje de error es mostrado en pantalla. El uso principal es poder añadir etiquetado HTML adicional después del mensaje de error.
error_log
string
Nombre del archivo donde serán registrados los errores. El archivo
debe ser accesible en escritura por el usuario ejecutando
el servidor web. Si el
valor especial syslog
es utilizado, los errores
serán enviados al sistema de registro del servidor. En
Unix, esto corresponde a syslog(3) y en Windows al
registro de eventos. Consulte también: syslog().
Si esta directiva no está fijada, los errores son enviados al registro de errores SAPI. Por ejemplo, si es un registro de errores en
Apache o stderr
en CLI.
Consulte también la función error_log().
error_log_mode
int
Modo de archivo para el archivo definido para error_log.
syslog.facility
string
Especifica el tipo de programa que registra el mensaje. Solo efectivo si error_log está definido como "syslog".
syslog.filter
string
Especifica el tipo de filtro para filtrar los mensajes registrados. Los
caracteres permitidos son pasados sin modificación; todos los demás son
escritos en su representación hexadecimal prefijada con \x
.
all
– la cadena registrada será separada en
caracteres de retorno de línea, y todos los caracteres son transmitidos
sin alteraciones
ascii
– la cadena registrada será separada en
caracteres de retorno de línea, y todo carácter 7-bit ASCII no imprimible será escapado
no-ctrl
– la cadena registrada será separada en
caracteres de retorno de línea, y los caracteres no imprimibles serán escapados
raw
– todos los caracteres son pasados al
sistema de registro sin alteraciones, sin separaciones en los retornos
de línea (idéntico a PHP anterior a 7.3)
Esta directiva no es soportada en Windows.Nota:
El tipo de filtro
raw
está disponible a partir de PHP 7.3.8 y PHP 7.4.0.
syslog.ident
string
Especifica la cadena de identidad que es añadida a cada mensaje. Solo efectivo si error_log está definido como "syslog".