ti-enxame.com

O que significa @ em PHP?

Possível Duplicar:
Referência - O que este símbolo significa em PHP?

Eu queria saber o que @ significa na linguagem PHP. Eu vi pessoas usando

$connect = @mysql_query('sql query here');

Não tenho certeza porque. Alguém poderia explicar isso para mim?

58
FlyingCat

O operador @ tells PHP para suprimir mensagens de erro, para que elas não sejam mostradas.

Por exemplo, usando:

$result = mysql_query("this is an invalid query");

resultaria em um aviso sendo mostrado, informando que a consulta MySQL é inválida, enquanto

$result = @mysql_query("this is still an invalid query");

não faria.

Note, no entanto, que esta é uma prática de programação muito ruim, pois não faz com que o erro desapareça, apenas os esconde e torna a depuração muito pior, já que você não consegue ver o que está realmente errado com seu código.

Em vez de usar @, você deve desativar error_reporting e display_errors apenas display_errors em php.ini

57
Frxstrem

O sinal @ diz a PHP para ignorar mensagens de erro.

PHP Operadores de Controle de Erros

13
Rocket Hazmat
1
Richard JP Le Guen

O @ é uma maneira de dizer que você não quer imprimir mensagens de erro. É uma prática ruim porque você pode ter um erro e nunca vê-lo porque você acabou de "escondê-lo".

O PHP suporta um operador de controle de erros: o sinal de arroba (@). Quando prefixado a uma expressão em PHP, qualquer mensagem de erro que possa ser gerada por essa expressão será ignorada.


Recursos:

1
Colin Hebert

@ Operador = Indica que, se ocorrer algum tipo de erro, não exiba a mensagem no navegador do usuário. Tem pessoas que testam isso e não viram a diferença mesmo eles colocam o @ ou não ainda não vêem nenhum erro no navegador, bem só para somar, a razão pela qual isso acontece é por causa da configuração no O arquivo php.ini para saída de erro é desativado.

Empresa de hospedagem diferente tem configurações diferentes, por isso, para garantir que você não queira ver nenhum erro de script feio para os usuários ou hackers (para que eles tenham uma pista para se infiltrar em seu site), você sempre pode usar o operador @.

Espero que esta ajuda.

0
Rassel