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.