Operador de controle de erros em PHP

Nenhum produto encontrado nessa seleção.

Em PHP você pode utilizar o arroba (@) como operador de controle de erros, basta adicioná-lo antes de qualquer expressão que o erro não será exibido.

Para testar, crie um arquivo PHP e tente exibir o comando abaixo:

<?php
echo $variavel_qualquer;
?>

Provavelmente você deverá visualizar um erro parecido com o trecho abaixo:

Notice: Undefined variable: variavel_qualquer in D:HD AntigoProgramasEasyPHP-DevServer-14.1VC9datalocalwebCursosphpaula_10index.php on line 2

O que é um erro indicando o arquivo (index.php) e a linha de código onde ele ocorreu (line 2).

Se você não quiser que esse erro apareça, basta adicionar um arroba (@) antes do nome da variável (ou de qualquer expressão):

<?php
echo @$variavel_qualquer;
?>

Agora, nada será exibido na tela, nem erro e nem o valor da variável, porque ela não existe (era isso que o erro estava descrevendo).

Se o recurso track_errors estiver habilitado no arquivo php.ini (o arquivo de configuração do PHP):

track_errors = On

Ou no trecho de código no início do arquivo PHP:

ini_set('track_errors', 1);

Qualquer mensagem de erro gerada pela expressão será gravada na variável global $php_errormsg.

Por exemplo:

<?php
// Variável que não existe
echo @$variavel_qualquer;

// Exibir o erro se existir
if ( isset( $php_errormsg ) && !empty( $php_errormsg ) ) {
	echo $php_errormsg;
}
?>

No trecho de código acima, utilizei uma estrutura de controle if para verificar se a variável $php_errormsg está setada (isset) e (&&) se ela não está vazia (!empty).

Esta variável ($php_errormsg) será sobrescrita a cada erro gerado, por isso, verifique-a constantemente no seu script se quiser usá-la.

Por que não utilizar este recurso?

Nunca utilize este recurso se não for estritamente necessário pelo seguinte:

  • Se seu código tem erros, ele foi mal escrito;
  • Você não vai conseguir saber onde está o erro, caso precise.

Portanto, evite o @ ao máximo.

Aulas anteriores

Caso queira acessar os links para aulas anteriores:

Veja todas as aulas, e mais, na categoria Curso de PHP do Tutsup.