Mostrar todos os erros em PHP

Subodh Poudel 30 janeiro 2023
  1. Use a função error_reporting('E_ALL') e a função ini_set() junto com a diretiva display_errors para exibir o erro de aviso
  2. Use a função error_reporting('-1') e a função ini_set() junto com as diretivas display_errors e display_startup_errors para exibir erros
  3. Modifique as diretivas no arquivo php.ini para exibir todos os erros, incluindo erros de análise em PHP
Mostrar todos os erros em PHP

Apresentaremos uma maneira de exibir erros no script PHP usando a função error_reporting() e a função ini_set(). O primeiro método relata o erro enquanto o segundo método substitui o arquivo php.ini ou o arquivo de configuração do Apache e ativa para exibir os erros apenas para o script atual.

Demonstraremos outra maneira de exibir erros de PHP usando as mesmas funções - a função error_reporting() e a função ini_set() como no primeiro método. O ponto crítico que diferencia este método do primeiro é que ele usa outra função ini_set() com a diretiva display_startup_errors e a função error_reporting() leva um valor inteiro como argumento.

Apresentaremos uma solução permanente para mostrar todos os erros do PHP, mudando a configuração no arquivo php.ini. Os dois métodos mencionados acima não ajudarão a exibir os erros de análise, como chaves e ponto-e-vírgulas ausentes.

Use a função error_reporting('E_ALL') e a função ini_set() junto com a diretiva display_errors para exibir o erro de aviso

Podemos usar a função error_reporting() para relatar todos os tipos de erros no script PHP. Para isso, usamos a constante nomeada E_ALL como o argumento na função. Ele relata todos os tipos de erros de PHP. E então, podemos usar a função ini_set() para exibir os erros relatados. A função define a diretiva display_errors como true. Assim, ele define a configuração no arquivo php.ini para definir a visibilidade dos erros. No entanto, o valor original das diretivas será restaurado no arquivo php.ini após a execução do script atual.

Para demonstração, escreva error_reporting(E_ALL) como a primeira linha do código do script. Defina display_errors para 1 na função ini_set. Faça eco de uma mensagem como 'This is a warning errorr'. Use a função include() para incluir um arquivo externo chamado file.php. Em seguida, execute o script.

O exemplo abaixo tenta exibir um erro de aviso no PHP. Este tipo de erro notifica que há algum problema no script sem interromper a execução do script. O exemplo inclui o arquivo file.php no script. Como esse arquivo não existe na pasta raiz, o script não carregará o arquivo e exibirá os erros. Como este é um erro de aviso, a instrução echo é executada junto com os erros. Para saber mais sobre a função error_reporting(), visite o manual do PHP

Código de exemplo:

# php 7.*
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "This is a warning error";
include ("file.php");
?>

Resultado:

This is a warning error 
**Warning**: include(file.php): failed to open stream: No such file or directory in **/var/www/html/index.php** on line **5** 
 
**Warning**: include(): Failed opening 'file.php' for inclusion (include_path='.:/usr/share/php') in **/var/www/html/index.php** on line **5**

Use a função error_reporting('-1') e a função ini_set() junto com as diretivas display_errors e display_startup_errors para exibir erros

A função error_reporting() também leva um valor inteiro como argumento. Podemos usar este método para exibir erros em PHP. Existem muitos níveis de erros no PHP. O nível -1 denota todos os erros de PHP. Passar o valor -1 funcionará nas versões futuras do PHP, mesmo com novos níveis e constantes. Às vezes, a diretiva display_errors na função ini_set() nem sempre trata os erros encontrados enquanto o PHP é iniciado. Nesses casos, podemos usar display_startup_errors para exibir os erros.

Por exemplo, defina os direcitves da função ini_set() como display_startup_errors e display_errors. Defina-os como true denotando por 1 na função ini_set(). Defina error_reporting como -1. Atribua um valor de 10 a uma variável $a e imprima uma variável $b.

No exemplo abaixo, o script encontra um erro de aviso. O código tenta imprimir a variável indefinida. Para aprender mais sobre a função ini_set(), visite o manual do PHP.

Código de exemplo:

#php 7.x
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
$a = 10;
echo $b;
?>

Resultado:

**Notice**: Undefined variable: b in **/var/www/html/index.php** on line **6**

Modifique as diretivas no arquivo php.ini para exibir todos os erros, incluindo erros de análise em PHP

Podemos modificar as diretivas no arquivo php.ini para exibir erros de PHP quando o acima mencionado não funcionar. O arquivo php.ini contém as configurações padrão necessárias ao executar um script PHP. Os métodos mencionados acima alteram o valor das diretivas apenas em tempo de execução, enquanto a modificação do arquivo php.ini altera os valores permanentemente. No entanto, não devemos seguir essa prática no nível de produção. Verifique o manual do PHP para saber mais sobre o arquivo de configuração em PHP.

Para alterar o valor das diretivas do arquivo php.ini, primeiro localize o arquivo em seu sistema. Use o seguinte script.

#php 7.x
<?php
phpinfo();
?>

Localize o ficheiro Loaded Configuration File, e você pode ver a localização do arquivo php.ini. No arquivo, localize as diretivas display_errors e display_startup_errors e altere o valor para on. Localize error_reporting e mude para error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING. Em seguida, reinicie o servidor da web Apache.

Por exemplo, no arquivo PHP, defina o error_reporting(-1). Atribua um valor Orange à variável $a, mas não escreva um ponto e vírgula depois dela. Imprima a variável em outra linha.

Na seção de saída do exemplo de código, o erro de análise é encontrado e exibido. Portanto, configurar o arquivo php.ini pode exibir os erros de análise também.

Exemplo de código:

#php 7.x
<?php
error_reporting(-1);
$a = "Orange"
echo $a;
?>

Resultado:

**Parse error**: syntax error, unexpected 'echo' (T_ECHO) in **/var/www/html/index.php** on line **6**
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artigo relacionado - PHP Error