Petite question en php a propos de @

Statut
N'est pas ouverte pour d'autres réponses.

Tifox

ou pas
Aujourd'hui, en m'attaquant un a la librairie GD (celle pour les images), j'ai découvert dans des exemples qu'il y avaitparfois un "@" devant certaines fonctions, mais qu'on le mette ou pas, ça ne change rien.
Après avoir un peu cherché (pas évident avec une seule lettre ultra utilisée...), je n'ai pas vraiment pu trouver a quoi servait ce "@".

Donc je vous pose la question : a quoi sert ce @ qu'il y a parfois devant certaines fonctions.

un petit exemple :
...
case "gif" :
@imagecreatefromgif( $image );
break;
...
 

noLain

www.wearewise.be
c'est pour ne pas afficher l'erreur, si il y en a une.
Et cela fonctionne avec toutes les fonctions php.
 

guslinux

Gamerz'ien
nauhLain a dit:
c'est pour ne pas afficher l'erreur, si il y en a une.
Et cela fonctionne avec toutes les fonctions php.
exact :) ... c bien utile parfois :D
 

null

ose();
Tout a été dit mais attention cependant, il faut pas mettre des "@" partout car si le script ne fonctionne pas, sans message d'erreur on ne peut pas savoir où il y a un quic
 
1er
OP
Tifox

Tifox

ou pas
Effectivement, ça peu être très utile.

Merci
 

MbK_

Etudjant
donnez un peu des exemple d'ou ca peu etre utile?

(je reve ou ds le mysql_fetch_array() y'a un @ devant la plupart du temps :x)
 

Ezekiel !

Elite
MbK_ a dit:
donnez un peu des exemple d'ou ca peu etre utile?

(je reve ou ds le mysql_fetch_array() y'a un @ devant la plupart du temps :x)
ben ici c'est parce que la fonction la n'est pas supportée par tout les hébergeurs... enfin je pense :)
Moi je l'utilise que pour ce type de fonction en tout cas... car si t'en met partout apres pour trouver la faute c'est un peu chaud ^^
 
1er
OP
Tifox

Tifox

ou pas
J'ai pas d'idée précise comme ça, mais si tu veux faire un code qui gère bien les erreurs, ça peut servir a laisser passer une erreur qui n'est pas critique sans que ça fasse un laid message.

Mais bon, je ne me suis pas penché sur la question, je ferai ça quand mon site marchera convenablement.
 

null

ose();
Par exemple dans PHPMyAdmin, quand tu peux entrer une commande SQL, le script va tout traiter en mettant des @ (en vrai il coupe le rapport d'erreur) et va lancer des fonctions qui vont vérifier le résultat de la commande etc...
 

guslinux

Gamerz'ien
Ez3kieL a dit:
MbK_ a dit:
donnez un peu des exemple d'ou ca peu etre utile?

(je reve ou ds le mysql_fetch_array() y'a un @ devant la plupart du temps :x)
ben ici c'est parce que la fonction la n'est pas supportée par tout les hébergeurs... enfin je pense :)
Moi je l'utilise que pour ce type de fonction en tout cas... car si t'en met partout apres pour trouver la faute c'est un peu chaud ^^
le @ sert sourtout à éviter d'avoir un msg d'erreur quand le résultat de ta requete est null :D pour le reste, il vaut mieux gerer les codes d'erreurs renvoyés pas MySQL...
 

MbK_

Etudjant
guslinux a dit:
Ez3kieL a dit:
MbK_ a dit:
donnez un peu des exemple d'ou ca peu etre utile?

(je reve ou ds le mysql_fetch_array() y'a un @ devant la plupart du temps :x)
ben ici c'est parce que la fonction la n'est pas supportée par tout les hébergeurs... enfin je pense :)
Moi je l'utilise que pour ce type de fonction en tout cas... car si t'en met partout apres pour trouver la faute c'est un peu chaud ^^
le @ sert sourtout à éviter d'avoir un msg d'erreur quand le résultat de ta requete est null :D pour le reste, il vaut mieux gerer les codes d'erreurs renvoyés pas MySQL...
ok ok parfait :)

je me rend compte que j'aurais pu l'utiliser.

Mais seulement, si il y a un probleme, le reste du script fonctionne? Ou ca ne va pas mais c'est juste qu'il n'y a pas d'erreur?
 

sebge2

Elite
MbK_ a dit:
guslinux a dit:
Ez3kieL a dit:
MbK_ a dit:
donnez un peu des exemple d'ou ca peu etre utile?

(je reve ou ds le mysql_fetch_array() y'a un @ devant la plupart du temps :x)
ben ici c'est parce que la fonction la n'est pas supportée par tout les hébergeurs... enfin je pense :)
Moi je l'utilise que pour ce type de fonction en tout cas... car si t'en met partout apres pour trouver la faute c'est un peu chaud ^^
le @ sert sourtout à éviter d'avoir un msg d'erreur quand le résultat de ta requete est null :D pour le reste, il vaut mieux gerer les codes d'erreurs renvoyés pas MySQL...
ok ok parfait :)

je me rend compte que j'aurais pu l'utiliser.

Mais seulement, si il y a un probleme, le reste du script fonctionne? Ou ca ne va pas mais c'est juste qu'il n'y a pas d'erreur?
oui le reste du script fonctionne .... personellement moi je met tjs des @
et je met if(!fonction(valeur)) erreur.="erreur dans la fonction bidule";
je gère moi meme les erreurs c'est plus propre :)
 
J

j0k3r_n0ir

ex membre
On trouve souvent dans des scripts de newsletter, en haut de la page qui envoie tous les mails :
@set_time_limit 1000

Cette fonction permet de fixer le temps maximum d'exécution d'un script qui normalement est bloqué à 30s, si mes souvenirs sont bons.
Et vu que la plupart des scripts de newsletter font un pauvre while pour envoyer tous les mails, ça peut prendre souvent du temps !

Et donc (pour en revenir au sujet ^^), cette fonction est quasiment tout le temps désactivé chez les hébergeurs et ça permet de ne pas avoir une belle erreur qui dit que la fonction est désactivé ;o)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut