Como mostrar erros PHP para identificar problemas no seu site

Saber como ocultar e mostrar erros PHP ajuda muito no processo de desenvolvimento de um site.

Se você está criando ou configurando um site, você deve querer configurar o servidor para mostrar erros PHP para saber a origem desses erros e como consertá-los.

Em muitos casos, as hospedagens de sites não habilitam a geração de logs de erros do PHP e não disponibilizam uma forma gráfica para ativar esses a geração dos registros de erros. Essa medida é para evitar que esses registros sejam gerados sem necessidade, já que muitas aplicações web já geram os próprios logs de erros e problemas.

Pensando nisto, elaboramos este breve artigo com um tutorial de como habilitar os logs de erro do PHP e identificar o que pode estar causando problemas em sua aplicação.

Como exibir erros PHP?
Exibir erros PHP

É possível exibir erros do PHP ao utilizando a função error_reporting. Esta função define quais erros serão reportados durante o desenvolvimento da aplicação.
A função error_reporting() configura a diretiva error_reporting durante a execução do PHP. Como o PHP tem vários níveis de erros, usando essa função é possível definir qual nível de erro será exibido.

Se um nível de erro não for definido na função, ela fica com o valor padrão que é nulo. Quando estiver dessa forma, a função só retornará a informação sobre qual nível de erro está configurado.

Alguns exemplos de como configurar a exibição dos erros do PHP:

// Desativa toda exibição de erros
error_reporting(0);

// Exibe erros simples
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Exibir E_NOTICE também pode ser bom para mostrar variáveis não iniciadas…
// ou com erros de digitação.
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Exibe todos os erros, exceto E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Exibe todos os erros PHP (see changelog)
error_reporting(E_ALL);

// Exibe todos os erros PHP
error_reporting(-1);

// Mesmo que error_reporting(E_ALL);
ini_set(‘error_reporting’, E_ALL);