Hoje, veremos como você pode usar a error_reporting
função em PHP para fins de depuração.
A error_reporting
função permite que você configure quais erros serão relatados em seus scripts PHP. Na verdade, quando você usa a error_reporting
função em seu script PHP, ela apenas define a error_reporting
diretiva em tempo de execução. Se você estiver ciente do arquivo de configuração php.ini , ele fornece várias diretivas de configuração para diferentes propósitos, e a error_reporting
diretiva é uma delas. Especificamente, a error_reporting
diretiva permite que você defina o nível de relatório de erros em seus scripts PHP.
Neste artigo rápido, veremos os fundamentos da error_reporting
função e discutiremos como você pode usá-la com eficácia no desenvolvimento de PHP no dia a dia.
Sintaxe
Vamos examinar rapidamente a sintaxe da error_reporting
função.
1
|
error_reporting (int $error_level = null): int
|
Leva um único argumento que permite que você passe o nível de erro que você deseja definir. É um argumento opcional, portanto, se você não o aprovar, ele deve retornar o nível de relatório de erro atual.
Você pode passar uma máscara de bits ou constantes nomeadas neste argumento. No entanto, é recomendado passar constantes nomeadas para compatibilidade com versões futuras do PHP. Além disso, se você usar constantes nomeadas, também aumentará a legibilidade do seu código.
Existem diferentes constantes de erro que você pode passar no primeiro argumento da error_reporting
função. A seguir está uma lista rápida de todas as constantes.
E_ERROR
: exibe erros fatais de tempo de execução
E_WARNING
: exibir avisos de tempo de execução
E_PARSE
: exibe erros de análise em tempo de compilação
E_NOTICE
: exibir avisos de tempo de execução
E_CORE_ERROR
: exibe erros fatais que ocorrem durante a inicialização do PHP
E_CORE_WARNING
: exibe avisos que ocorrem durante a inicialização do PHP
E_COMPILE_ERROR
: exibe erros fatais de tempo de compilação
E_COMPILE_WARNING
: exibe avisos fatais em tempo de compilação
E_USER_ERROR
: exibe a mensagem de erro gerada pelo usuário
E_USER_WARNING
: exibe a mensagem de aviso gerada pelo usuário
E_USER_NOTICE
: exibe a mensagem de aviso gerada pelo usuário
E_STRICT
: sugira alterações em seu código que garantirão a melhor interoperabilidade e compatibilidade futura
E_RECOVERABLE_ERROR
: exibir erros fatais capturáveis
E_DEPRECATED
: exibe avisos sobre o código que não funcionará em versões futuras
E_USER_DEPRECATED
: semelhante a E_DEPRECATED
, mas exibe apenas mensagens de aviso geradas pelo usuário
E_ALL
: exibe todos os erros, avisos e notificações
Cada constante permite definir um nível diferente de relatório de erros. Na próxima seção, veremos como você pode usar a error_reporting
função no desenvolvimento diário de PHP.
Como usar a função error_reporting
Na seção anterior, examinamos a sintaxe da error_reporting
função. Nesta seção, veremos como você pode usá-lo em seus scripts PHP.
Exibir todos os erros
Vamos examinar rapidamente o exemplo a seguir.
1
2
3
4
5
|
<?php
error_reporting (E_ALL);
ini_set ( 'display_errors' , 1);
echo $foo ;
?>
|
No exemplo acima, passamos a E_ALL
constante no primeiro argumento da error_reporting
função e, portanto, ela exibirá todos os erros, avisos e avisos em nosso script. Se você executar o script acima, ele deverá exibir o seguinte erro.
1
|
Notice: Undefined variable: foo in /web/demo/error_reporting.php on line 4
|
Visto que estamos usando a $foo
variável sem defini-la de antemão, isso lança um aviso para informar que você deve definir a $foo
variável antes de realmente usá-la.
Como alternativa, você também poderia passar em -1
vez da E_ALL
constante, conforme mostrado no trecho a seguir, e isso mostraria todos os erros possíveis.
1
2
3
|
<?php
error_reporting (-1);
?>
|
A E_ALL
constante é realmente útil para depurar o famoso erro WSOD (tela branca da morte).
Exibir todos os erros, exceto avisos
Vamos examinar o exemplo a seguir.
1
2
3
4
5
|
<?php
error_reporting (E_ALL & ~E_NOTICE);
ini_set ( 'display_errors' , 1);
echo $foo ;
?>
|
Quando você usa a error_reporting
função, você pode usar operadores como &
, |
e ~
de omitir e específicas filtro tipos de erros. No exemplo acima, queremos exibir todos os tipos de erros, exceto avisos e, portanto, usamos o ~
operador na frente da E_NOTICE
constante. Se você executar o script acima, ele não exibirá o aviso que teria exibido se você tivesse usado apenas a E_ALL
constante.
Exibir avisos e advertências
Nesta seção, veremos como você pode exibir apenas tipos específicos de erros. Vamos examinar rapidamente o exemplo a seguir.
1
2
3
4
5
6
|
<?php
error_reporting (E_WARNING | E_NOTICE);
ini_set ( 'display_errors' , 1);
include "foo_bar.php" ;
echo $foo ;
?>
|
No exemplo acima, estamos instruindo a error_reporting
função de que queremos exibir apenas avisos e notificações. Como você pode ver, usamos o |
operador para exibir os dois tipos de erros.
É assim que você pode usar a error_reporting
função com diferentes tipos de constantes de erro para fins de depuração em seu desenvolvimento de PHP do dia a dia.
Conclusão
Hoje, discutimos como você pode usar a error_reporting
função em PHP para depurar erros em seus scripts PHP. Discutimos como você pode usá-lo para exibir diferentes níveis de erros durante o desenvolvimento.