@ no PHP  XML
Índice dos Fóruns » Outras Linguagens
Autor Mensagem
antitribus
Thread.start()
[Avatar]

Membro desde: 29/12/2011 13:34:41
Mensagens: 25
Offline

Bom dia pessoal,
Mas uma dúvida me surgiu, pra quê serve o @ antes de algumas instruções em php como o exemplo abaixo:


qual a diferença para isto?


grato!

This message was edited 1 time. Last update was at 19/01/2012 08:24:58

dtxk
Java Ninja
[Avatar]

Membro desde: 09/03/2010 00:57:50
Mensagens: 264
Offline

se nao me engano, quanco colocar arroba(@) é para excluir qualquer tipo de erro. ou seja se der erro , não é para mostrar nada na tela.

abraços
antitribus
Thread.start()
[Avatar]

Membro desde: 29/12/2011 13:34:41
Mensagens: 25
Offline

dtxk wrote:se nao me engano, quanco colocar arroba(@) é para excluir qualquer tipo de erro. ou seja se der erro , não é para mostrar nada na tela.

abraços


Obrigado por responder, mas acredito não ser isto, pelo fato de eu ter criado um teste tentando
fazer a leitura de um arquivo existente e um não existente, e não houve diferença nenhuma entre os dois.

Mesmo porque, isto é manipulado no php.ini em display_errors.

Continuo nesta dúvida
bob_sponja
JavaBaby

Membro desde: 03/05/2011 23:21:06
Mensagens: 88
Offline

É justamente o que o dtxk falou... O '@' serve para ignorar erros... se vc tentar abrir um arquivo inexistente, uma exceção será lançada e o programa será interrompido, mas se a instrução tiver o @, a a exceção será ignorada e o programa continua executando...

Faz um teste. Executa esse código primeiramente sem @ e depois com:


Com o @, a palavra teste será exibida...

This message was edited 1 time. Last update was at 19/01/2012 09:55:06

antitribus
Thread.start()
[Avatar]

Membro desde: 29/12/2011 13:34:41
Mensagens: 25
Offline

bob_sponja wrote:É justamente o que o dtxk falou... O '@' serve para ignorar erros... se vc tentar abrir um arquivo inexistente, uma exceção será lançada e o programa será interrompido, mas se a instrução tiver o @, a a exceção será ignorada e o programa continua executando...

Faz um teste. Executa esse código primeiramente sem @ e depois com:


Com o @, a palavra teste será exibida...


Então, este teste eu fiz aqui, tanto com @, quanto sem e passou, será que isto não depende da versão do PHP?

Grato!
douglaskd
GUJ Ranger
[Avatar]

Membro desde: 04/07/2010 00:51:49
Mensagens: 839
Localização: Campinas - SP
Offline

acho que no seu php ja esta configurado para nao mostrar os erros

eu sempre usei o @ para esconder warnings e sempre deu certo...

abrass
perdeu
JavaEvangelist
[Avatar]

Membro desde: 24/08/2009 00:01:45
Mensagens: 389
Localização: Curitiba - PR
Offline

por padrão os erros são exibidos no php.ini. testei seu exemplo aqui, abri um aquivo pra leitura q n existia deu erro:

Warning: fopen(bloco1.txt) [function.fopen]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\fopen\teste.php on line 6


colocando a @ some..........rsrs mas n faça isso

se vc quiser transformar as linhas desse arquivo em um array utilize a função file(); é bem pratica

para mostrar os erros independente do q esta setado no php.ini utilize isso

error_reporting(E_ALL);

This message was edited 1 time. Last update was at 19/01/2012 22:53:47

Anime
GUJ Master
[Avatar]

Membro desde: 11/11/2009 07:37:26
Mensagens: 1949
Localização: São José do Rio Preto-SP
Offline

@ é gambiarra rsrs...

As Quatro Chaves da Função Gerencial

O sorriso de fraternidade, a ajuda silenciosa, a humildade sem alarde,
a flor da gentilesa e o gesto amigo cabem prodigiosamente, em qualquer parte.
Chico Xavier - Emmanuel
Anime
GUJ Master
[Avatar]

Membro desde: 11/11/2009 07:37:26
Mensagens: 1949
Localização: São José do Rio Preto-SP
Offline

desculpe!

This message was edited 1 time. Last update was at 21/01/2012 21:15:22


As Quatro Chaves da Função Gerencial

O sorriso de fraternidade, a ajuda silenciosa, a humildade sem alarde,
a flor da gentilesa e o gesto amigo cabem prodigiosamente, em qualquer parte.
Chico Xavier - Emmanuel
antitribus
Thread.start()
[Avatar]

Membro desde: 29/12/2011 13:34:41
Mensagens: 25
Offline

De fato, se a exibição dos erros está sendo tratada no script, considero gambiarra também.
É que o código não era meu, no caso achei isto numa biblioteca de terceiros, e como nunca utilizei o "@" no PHP,
então surgiu esta curiosidade.

Mas muito obrigado à todos!
antitribus
Thread.start()
[Avatar]

Membro desde: 29/12/2011 13:34:41
Mensagens: 25
Offline

Só mais uma pergunta,
Como eu dou este tópico como resolvido?
Abcs!
rebinho
JavaBaby
[Avatar]

Membro desde: 27/02/2011 01:43:50
Mensagens: 93
Offline

antitribus wrote:Só mais uma pergunta,
Como eu dou este tópico como resolvido?
Abcs!

Para colocar como resolvido basta editar seu primeiro post... Vai aparecer o nome que você coloco ai coloque um [Resolvido] no título!

Agora uma dica... Se está começando a programar em PHP ou já programa se a opção de exibir erros estiver desabilitada acho que seria interessante habilitar.

Basta procurar por display_errors no arquivo de configuração e colocar como On pois acho que se aprender bastante vendo as msg de erro...

Abraço!

"Podemos escolher o que semear, mas somos obrigados a colher aquilo que plantamos."
[MSN]
 
Índice dos Fóruns » Outras Linguagens
Ir para:   
Powered by JForum 2.1.8 © JForum Team