O comportamento dessas funções podem ser modificado pelas configurações do php.ini.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
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 | Disponível a partir do PHP 4.3.0. |
ignore_repeated_errors | "0" | PHP_INI_ALL | Disponível a partir do PHP 4.3.0. |
ignore_repeated_source | "0" | PHP_INI_ALL | Disponível a partir do PHP 4.3.0. |
report_memleaks | "1" | PHP_INI_ALL | Disponível a partir do PHP 4.3.0. |
track_errors | "0" | PHP_INI_ALL | |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP <= 4.2.3. |
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Disponível a partir do PHP 4.1.0. |
xmlrpc_error_number | "0" | PHP_INI_ALL | Disponível a partir do PHP 4.1.0. |
docref_root | "" | PHP_INI_ALL | Disponível a partir do PHP 4.3.0. |
docref_ext | "" | PHP_INI_ALL | Disponível a partir do PHP 4.3.2. |
error_prepend_string | NULL | PHP_INI_ALL | |
error_append_string | NULL | PHP_INI_ALL | |
error_log | NULL | PHP_INI_ALL | |
syslog.facility | "LOG_USER" | PHP_INI_SYSTEM | Disponível a partir do PHP 7.3.0. |
syslog.filter | "no-ctrl" | PHP_INI_ALL | Disponível a partir do PHP 7.3.0. |
syslog.ident | "php" | PHP_INI_SYSTEM | Disponível a partir do PHP 7.3.0. |
Uma rápida explicação das diretivas de configuração.
error_reporting
integer
Define o nível de relatório de erros. O parâmetro é ou um inteiro representando um campo de bits ou constantes nomeadas. Os níveis e constantes de error_reporting são descritos em Constantes Pré-definidas e no arquivo php.ini. Para definir em tempo de execução, use a função error_reporting(). Veja também a diretiva display_errors.
A partir do PHP 5.3, o valor padrão
é E_ALL
&
~E_NOTICE
&
~E_STRICT
&
~E_DEPRECATED
. Esta configuração não mostra os níveis
de erro E_NOTICE
, E_STRICT
e E_DEPRECATED
. Você pode querer
mostrá-los durante o desenvolvimento.
Antes do PHP 5.3.0, o valor padrão
é E_ALL
&
~E_NOTICE
&
~E_STRICT
.
No PHP 4, o valor padrão é E_ALL
& ~E_NOTICE
.
Nota:
Habilitar o
E_NOTICE
durante o desenvolvimento traz alguns benefícios. Para fins de depuração: as mensagens NOTICE irão avisá-lo sobre possíveis erros em seu código. Por exemplo, o uso de valores não atribuídos é avisado. É extremamente útil para encontrar erros de digitação e para economizar tempo de depuração. As mensagens NOTICE irão avisá-lo sobre estilo ruim. Por exemplo, $arr[item] é melhor ser escrito como $arr['item'] já que o PHP tenta tratar "item" como constante. Se não for uma constante, o PHP assume que é uma string para o índice do array.
Nota:
No PHP 5, um novo nível de erro
E_STRICT
está disponível. Antes do PHP 5.4.0,E_STRICT
não estava incluído noE_ALL
, portanto, você teria que habilitar explicitamente esse tipo de nível de erro no PHP < 5.4.0. Habilitar oE_STRICT
durante o desenvolvimento traz alguns benefícios. As mensagens STRICT fornecem sugestões que podem ajudar a garantir a melhor interoperabilidade e compatibilidade futura do seu código. Essas mensagens podem incluir coisas como chamar estaticamente métodos não-estáticos, definir propriedades em uma definição de classe compatível enquanto estiver definido em um trait usado e, antes do PHP 5.3, alguns recursos descontinuados emitiriam errosE_STRICT
, como atribuir objetos por referência na instanciação.
Nota: Constantes do PHP fora do PHP
Usar constantes do PHP fora do PHP, como no httpd.conf, não terão significado algum, portanto, nesses casos, os valores integer são necessários. E, como níveis de erro serão adicionados ao longo do tempo, o valor máximo (para
E_ALL
) provavelmente será alterado. Portanto, no lugar deE_ALL
, considere usar um valor maior para cobrir todos os campos de bits tanto os de hoje como os do futuro, um valor numérico como 2147483647 (inclui todos os erros, não apenasE_ALL
).
display_errors
string
Isso determina se os erros devem ser impressos na tela como parte da saída ou se devem ser ocultados do usuário.
O valor "stderr" envia os erros para stderr em vez de stdout. O valor está disponível a partir do PHP 5.2.4. Em versões anteriores, essa diretiva era do tipo boolean.
Nota:
Este é um recurso para dar suporte ao seu desenvolvimento e nunca deve ser usado em sistemas de produção (por exemplo, sistemas conectados à internet).
Nota:
Embora display_errors possa ser configurado em tempo de execução (com ini_set()), ele não terá nenhum efeito se o script tiver erros fatais. Isso ocorre porque a ação em tempo de execução desejada não é executada.
display_startup_errors
boolean
Mesmo quando display_errors está ativado, erros que ocorrem durante a sequência de inicialização do PHP não são exibidos. É altamente recomendável manter display_startup_errors desativado, exceto para depuração.
log_errors
boolean
Informa se as mensagens de erro de script devem ser registradas no log de erros do servidor ou no error_log. Essa opção é, portanto, específica do servidor.
Nota:
É altamente recomendável usar o registro de erros em vez de exibir erros em sites de produção.
log_errors_max_len
integer
Define o comprimento máximo de log_errors em bytes. Em error_log, informações sobre a fonte são adicionadas. O padrão é 1024 e 0 não aplica um comprimento máximo. Esse tamanho é aplicado a erros registrados, erros exibidos e também a $php_errormsg, mas não à funções chamadas explicitamente como error_log().
Quando um integer é utilizado, o valor é medido em bytes. A resumida notação, como descrito neste FAQ, pode também ser usada.ignore_repeated_errors
boolean
Não registrar mensagens repetidas. Erros repetidos devem ocorrer no mesmo arquivo e na mesma linha, a menos que ignore_repeated_source seja definido como verdadeiro.
ignore_repeated_source
boolean
Ignora a fonte da mensagem quando estiver ignorando mensagens repetidas. Quando esta configuração estiver On, você não registrará erros com mensagens repetidas de arquivos ou linhas diferentes.
report_memleaks
boolean
Se este parâmetro estiver definido como On (o padrão), este parâmetro
mostrará um relatório de vazamentos de memória detectados pelo gerenciador
de memória do Zend. Este relatório será enviado para stderr em plataformas
Posix. No Windows, ele será enviado ao depurador usando o
OutputDebugString() e poderá ser visualizado com ferramentas como o
» DbgView. Este parâmetro só tem
efeito em uma compilação de depuração, e se error_reporting incluir
E_WARNING
na lista de permitidos.
track_errors
boolean
Se habilitado, a última mensagem de erro estará sempre presente na variável $php_errormsg.
html_errors
boolean
Se ativado, as mensagens de erro incluirão tags HTML. O formato para erros de HTML produz mensagens clicáveis que direcionam o usuário para uma página descrevendo o erro ou a função que está causando o erro. Essas referências são afetadas por docref_root e docref_ext.
Se desativado, a mensagem de erro será apenas texto simples.
xmlrpc_errors
boolean
Se ativado, desativa o relatório de erros normal e formata os erros como mensagem de erro XML-RPC.
xmlrpc_error_number
integer
Usado como o valor do elemento faultCode do XML-RPC.
docref_root
string
O novo formato de erro contém uma referência a uma página que descreve o erro
ou a função que está causando o erro. No caso de páginas de manual, você pode
baixar o manual em seu idioma e definir esta diretiva ini para a URL da sua cópia
local. Se a sua cópia local do manual pode ser alcançada por "/manual/"
você pode simplesmente usar docref_root=/manual/
. Além disso,
você precisa definir docref_ext para corresponder às extensões de arquivo de sua cópia
docref_ext=.html
. É possível usar referências
externas. Por exemplo, você pode usar
docref_root=http://manual/en/
ou
docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon
&url=http%3A%2F%2Fwww.php.net%2F"
Na maioria das vezes, você quer que o valor docref_root termine com uma barra "/". Mas veja o segundo exemplo acima, que não tem nem precisa dela.
Nota:
Este é um recurso para dar suporte ao seu desenvolvimento, pois facilita a pesquisa da descrição de uma função. No entanto, nunca deve ser usado em sistemas de produção (por exemplo, sistemas conectados à internet).
docref_ext
string
Veja docref_root.
Nota:
O valor de docref_ext deve começar com um ponto ".".
error_prepend_string
string
String para mostrar antes de uma mensagem de erro.
error_append_string
string
String para mostrar após uma mensagem de erro.
error_log
string
Nome do arquivo onde os erros de script devem ser registrados. O arquivo deve ter permissão de escrita pelo usuário do servidor da web. Se o valor especial syslog for usado, os erros serão enviados ao registrador de erros do sistema. No Unix, isso significa syslog(3) e no Windows significa o log de eventos. Veja também: syslog(). Se esta diretiva não estiver definida, os erros serão enviados para o registrador de erros SAPI. Por exemplo, é um log de erros no Apache ou stderr no CLI. Veja também error_log().
syslog.facility
string
Especifica qual tipo de programa está registrando a mensagem. Somente é efetivo se error_log estiver definido como "syslog".
syslog.filter
string
Especifica o tipo de filtro para filtrar as mensagens registradas. Caracteres permitidos são passados sem modificações; todos os outros são escritos em sua representação hexadecimal prefixado com \x. Existem três tipos de filtros suportados:
syslog.ident
string
Especifica a string ident que é anexada a todas as mensagens. Somente é efetivo se error_log estiver definido como "syslog".