127 votes

PHP: le caractère " @ " avant le un appel de fonction

Quelle est la différence entre ces deux appels de fonction en PHP?

init_get($somevariable);

@init_get($somevariable);

Merci.

197voto

solidgumby Points 666

le "@" silence toutes les erreurs php de votre fonction pourrait soulever.

48voto

Jonathan Sampson Points 121800

Il fait taire les erreurs et les avertissements. Voir Erreur Opérateurs De Contrôle.

36voto

AntonioCS Points 3208

Comme déjà répondu à la @ arrêtera l'erreur (le cas échéant) de se présenter.
En termes de performance, ce n'est pas à recommander.

Ce que php est en train de faire est:

  • la lecture de l'erreur d'affichage de l'état
  • réglage de l'affichage du message d'erreur à afficher pas d'erreurs
  • l'exécution de votre fonction
  • réglage de l'affichage du message d'erreur à son état précédent

Si vous ne voulez pas toutes les erreurs montrant l'utilisation:

la fonction error_reporting(0);

Ou tout simplement d'écrire sans bug code :P

8voto

George Points 31

http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38

Tous PHP expressions peut être appelée avec le préfixe"@", qui s'éteint les rapports d'erreurs pour que l'expression particulière.

6voto

Daniel S Points 1100

Comme tout le monde le dit, il s'arrête à la sortie des erreurs pour cette fonction particulière. Toutefois, cela diminue grandement les performances, car il a changer de l'erreur de réglage de l'affichage deux fois. Je recommanderais de ne PAS ignorer les avertissements ou des erreurs et fixant le code à la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X