IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pourquoi un @


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut Pourquoi un @
    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.

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    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.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    Pourquoi tu trouves son utilisation déplorable? çà à pas l'air mal si çà empeche d'afficher une erreur (à part si on veut debugguer lol)

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    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.

  5. #5
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    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?

  6. #6
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    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

  7. #7
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    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..

  8. #8
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    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

  9. #9
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Exactement.

  10. #10
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    Merci à tous pour ces précisions je vais ecouter vos conseils.

    Bonne continuation à vous tous.

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par DEMMOTTE
    2) celui qui utilise un @ est un "flemard" car il ne veux meme pas prendre la peine de gérer les erreurs !
    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".

    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.

  12. #12
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    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.

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par julp
    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".
    Citation Envoyé par |PaRa-BoL
    Vérifier qu'une image est valide avec getimagesize(). Malheureusement en plus de retourner false, cette fonction génère un warning.
    C'est ce que j'ai évoqué ... 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.

  14. #14
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    Oui effectivement je n'avais pas vu la FAQ à ce sujet dsl mais merci quand meme pour vos précisions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Templates] Quel système utilisez-vous ? Pourquoi ?
    Par narmataru dans le forum Bibliothèques et frameworks
    Réponses: 270
    Dernier message: 26/03/2011, 00h15
  2. Que choisir ? C# , VB.NET, C++, Delphi ? pourquoi ?
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 475
    Dernier message: 08/04/2010, 19h27
  3. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  4. Pourquoi ces directives #ifndef ... en haut des .h
    Par Patrick PETIT dans le forum C
    Réponses: 8
    Dernier message: 06/03/2003, 23h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo