A diretiva error\_reporting fica no php.ini, e define os níveis de erros que o PHP irá reportar, os níveis de erros são os seguintes:

1. E\_ERROR

> Erros em tempo de execução fatais. Estes indicam erros que não podem ser recuperados, como problemas de alocação de memória. A execução do script é interrompida.

2. E\_WARNING

> Avisos em tempo de execução (erros não fatais). A execução do script não é interrompida.

3. E\_PARSE

> Erro em tempo de compilação. Erros gerados pelo interpretador.

4. E\_NOTICE

> Notícia em tempo de execução. Indica que o script encontrou alguma coisa que pode indicar um erro, mas que também possa acontecer durante a execução normal do script.

5. E\_CORE\_ERROR

> Erro fatal que acontece durante a inicialização do PHP. Este é parecido com E\_ERROR, exceto que é gerado pelo núcleo do PHP.

6. E\_CORE\_WARNING

> Avisos (erros não fatais) que aconteçam durante a inicialização do PHP. Este é parecido com E\_WARNING, exceto que é gerado pelo núcleo do PHP.

7. E\_COMPILE\_ERROR

> Erro fatal em tempo de compilação. Este é parecido com E\_ERROR, exceto que é gerado pelo Zend Scripting Engine.

8. E\_COMPILE\_WARNING

> Aviso em tempo de compilação. Este é parecido com E\_WARNING, exceto que é gerado pelo Zend Scripting Engine.

9. E\_USER\_ERROR

> Erro gerado pelo usuário. Este é parecido com E\_ERROR, exceto que é gerado pelo código PHP usando a função trigger\_error().

10. E\_USER\_WARNING

> Aviso gerado pelo usuário. Este é parecido com E\_WARNING, exceto que é gerado pelo código PHP usando a função trigger\_error().

11. E\_USER\_NOTICE

> Notícia gerada pelo usuário. Este é parecido com E\_NOTICE, exceto que é gerado pelo código PHP usando a função trigger\_error().

12. E\_ALL

> Todos os erros e avisos, como suportado, exceto do nível E\_STRICT.

13. E\_STRICT

> Notícias em tempo de execução. Permite ao PHP sugerir modificações em seu código para segurar melhor interoperabilidade e compatibilidade futura do seu código.