Bonjour voila ma question.
Dans certaines applications que je rencontre je trouve souvent des @ avant les POST GET ou unlink ...
A quoi sert ce caractère ? Merci.
Bonjour voila ma question.
Dans certaines applications que je rencontre je trouve souvent des @ avant les POST GET ou unlink ...
A quoi sert ce caractère ? Merci.
Cela empêche l'interprêteur PHP d'afficher un message d'erreur si jamais la variable n'est pas valorisé, ou encore si la fonction s'est mal executée.
Je trouve un peu son utilisation déplorable mais ce n'est que mon avis. L'utilisation d'un "@" n'est jamais indispensable.
Pourquoi tu trouves son utilisation déplorable? çà à pas l'air mal si çà empeche d'afficher une erreur (à part si on veut debugguer lol)
un petit if + isset ou arra_key_exists si besoin et plus besoin du @.
De plus avec un if on peut gérer le fait que oui ou non la variable/fonction a été valorisée/executée.
Ouais pour le POST ou GET ou SESSION ... c'est clair que le isset est beaucoup mieux mais dans le cas d'un unlink ou opendir ... c'est pas utile?
Bah si imagines que tu aies besoin de supprimer un dossier.
Ca veut dire que si jamais le unlink n'a pas fonctionné le gérant du site ne sera pas au courant et cela peut entraver le bon fonctionnement du site.
ps : oui j'ai fait un edit entre temps :p
bonjour,
utiliser un '@' est pour moi inadmissible pour 2 raisons :
1) le @ empêche l'affichage de l'erreur, mais c'est pas pour autant qu'il n'y a plus d'erreur.
2) celui qui utilise un @ est un "flemard" car il ne veux même pas prendre la peine de gérer les erreurs !
or, pour développer une application/script qui soit valable, il faut gérer TOUS les cas possible d'une erreurs : faut se mettre dans la peau du plus bête des clients.
après, c'est mon avis..
Donc tu me conseil de ne pas utiliser ce @ sinon on sera jamais si y a des erreurs sur le site ou pas en gros![]()
Merci à tous pour ces précisions je vais ecouter vos conseils.
Bonne continuation à vous tous.![]()
PHP génère des erreurs (peu importe leur nature) dans des circonstances que le développeur ne peut pas gérer et ce en plus du retour d'une valeur fausse, je pense notamment aux extensions. Donc il ne serait pas forcément question de "flemme".Envoyé par DEMMOTTE
Cependant, je suis d'accord sur le fait qu'on ne devrait pas en utiliser puisque l'affichage ou non des erreurs dépendra de la configuration de son environnement : directive display_errors (théoriquement à On en développement et Off en production). Ce qui fait que la question de son utilisation ne devrait pas se poser en effet. Pour les hébergements mutualisés c'est une autre histoire ...
PS, la FAQ : Pourquoi utilise-t-on @ devant une expression ? qui traitait la question.
Je ne suis pas d'accord :
Cela peut être utile pour ne pas afficher certaine notice :
Exemple :
Vérifier qu'une image est valide avec getimagesize(). Malheureusement en plus de retourner false, cette fonction génère un warning.
Envoyé par julp
C'est ce que j'ai évoqué ...Envoyé par |PaRa-BoL
Tout est question de configuration de l'environnement : error_reporting permet d'en écarter (les messages de type notice en production ne sont pas très utiles alors qu'en développement ils peuvent être très révélateurs) et display_errors, voir mon précédent message.
Oui effectivement je n'avais pas vu la FAQ à ce sujet dslmais merci quand meme pour vos précisions.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager