bonjour
en decortiquant certaines sources php, je 'ai pu constater l'utilisation du
signe '@' devant certaines fonctions...
(par exmple: if (!@file_exists(@($file)) ...
une bonne ame pourrait elle m'expliquer de quoi il en retourne?
merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Krystyan
un @ permet, devant un code php, de cacher d'éventuelle erreur. ceci est très usité devant les requetes sur une bdd, cela permet de ne pas montrer l'erreur d'appel à la base si erreur il y a
Krystyan
Stef wrote:
bonjour en decortiquant certaines sources php, je 'ai pu constater l'utilisation du signe '@' devant certaines fonctions... (par exmple: if (!@file_exists(@($file)) ... une bonne ame pourrait elle m'expliquer de quoi il en retourne? merci d'avance
un @ permet, devant un code php, de cacher d'éventuelle erreur.
ceci est très usité devant les requetes sur une bdd, cela permet de ne
pas montrer l'erreur d'appel à la base si erreur il y a
Krystyan
Stef wrote:
bonjour
en decortiquant certaines sources php, je 'ai pu constater l'utilisation du
signe '@' devant certaines fonctions...
(par exmple: if (!@file_exists(@($file)) ...
une bonne ame pourrait elle m'expliquer de quoi il en retourne?
merci d'avance
un @ permet, devant un code php, de cacher d'éventuelle erreur. ceci est très usité devant les requetes sur une bdd, cela permet de ne pas montrer l'erreur d'appel à la base si erreur il y a
Krystyan
Stef wrote:
bonjour en decortiquant certaines sources php, je 'ai pu constater l'utilisation du signe '@' devant certaines fonctions... (par exmple: if (!@file_exists(@($file)) ... une bonne ame pourrait elle m'expliquer de quoi il en retourne? merci d'avance
Germain / volt'
une bonne ame pourrait elle m'expliquer de quoi il en retourne?
n'affiche rien si php retourne une erreur. évite de rendre visible au yeux du public les parse errors, problèmes de connexions, bla bla... a++ -- Venez manger sur l'herbe avant que l'herbe ne vous mange dessus !!! ciao / germain
une bonne ame pourrait elle m'expliquer de quoi il en retourne?
n'affiche rien si php retourne une erreur. évite de rendre visible au
yeux du public les parse errors, problèmes de connexions, bla bla...
a++
--
Venez manger sur l'herbe avant que l'herbe ne vous mange dessus !!!
ciao / germain
une bonne ame pourrait elle m'expliquer de quoi il en retourne?
n'affiche rien si php retourne une erreur. évite de rendre visible au yeux du public les parse errors, problèmes de connexions, bla bla... a++ -- Venez manger sur l'herbe avant que l'herbe ne vous mange dessus !!! ciao / germain
Etienne SOBOLE
"Guillaume Bouchard" a écrit dans le message de news: 3f252628$0$11021$
1) deconseillé la plus part du temps et surtout quand tu code... je me rappel avec cherché une erreur pendant des heures alors que de ne pas avoir mit de @ me l'aurais indiquer tres vite.
Oui ca sert surtout si t'es graphiste alors :))) Non je rigole, parce que je suis complètement d'accord avec toi. le @ est a eviter, parce que ce denote quelques erreurs de conception... on peut toujours tester s'il va y avoirdes erreurs... Un autre utilisateur disait que c'etait utile pour éviter l'affichage d'erreur lors de connexion a la base de donnée. J'ai tendance a dire. "oui mais en cas d'erreur on affiche quoi alors" ?
2) A mettre sur certaines fonctions qui renvoyent une erreur en cas d'echec. Mais elle sont rare et facilement contournable. Dans ton exemple cela ne sert a rien.
Exemple, la fonction getimagesize qui renvoye un warning si l'image n'existe pas... Tu peut mettre un @ pour l'eviter. Mais tu peut aussi tester avant que l'image existe et donc eviter le warning. ( mailleur solution.)
Oui c'est mieux effectivmenet de procéder comme ca.
Bref, le @ dans 99 % des cas ne doit pas etre utilisé.
Yep. je suis d'accord. Etienne
"Guillaume Bouchard" <gobpower@free.fr> a écrit dans le message de news:
3f252628$0$11021$626a54ce@news.free.fr...
1) deconseillé la plus part du temps et surtout quand tu code... je me
rappel avec cherché une erreur pendant des heures alors que de ne pas
avoir mit de @ me l'aurais indiquer tres vite.
Oui ca sert surtout si t'es graphiste alors :)))
Non je rigole, parce que je suis complètement d'accord avec toi. le @ est a
eviter, parce que ce denote quelques erreurs de conception... on peut
toujours tester s'il va y avoirdes erreurs...
Un autre utilisateur disait que c'etait utile pour éviter l'affichage
d'erreur lors de connexion a la base de donnée.
J'ai tendance a dire. "oui mais en cas d'erreur on affiche quoi alors" ?
2) A mettre sur certaines fonctions qui renvoyent une erreur en cas
d'echec. Mais elle sont rare et facilement contournable. Dans ton
exemple cela ne sert a rien.
Exemple, la fonction getimagesize qui renvoye un warning si l'image
n'existe pas... Tu peut mettre un @ pour l'eviter. Mais tu peut aussi
tester avant que l'image existe et donc eviter le warning. ( mailleur
solution.)
Oui c'est mieux effectivmenet de procéder comme ca.
Bref, le @ dans 99 % des cas ne doit pas etre utilisé.
"Guillaume Bouchard" a écrit dans le message de news: 3f252628$0$11021$
1) deconseillé la plus part du temps et surtout quand tu code... je me rappel avec cherché une erreur pendant des heures alors que de ne pas avoir mit de @ me l'aurais indiquer tres vite.
Oui ca sert surtout si t'es graphiste alors :))) Non je rigole, parce que je suis complètement d'accord avec toi. le @ est a eviter, parce que ce denote quelques erreurs de conception... on peut toujours tester s'il va y avoirdes erreurs... Un autre utilisateur disait que c'etait utile pour éviter l'affichage d'erreur lors de connexion a la base de donnée. J'ai tendance a dire. "oui mais en cas d'erreur on affiche quoi alors" ?
2) A mettre sur certaines fonctions qui renvoyent une erreur en cas d'echec. Mais elle sont rare et facilement contournable. Dans ton exemple cela ne sert a rien.
Exemple, la fonction getimagesize qui renvoye un warning si l'image n'existe pas... Tu peut mettre un @ pour l'eviter. Mais tu peut aussi tester avant que l'image existe et donc eviter le warning. ( mailleur solution.)
Oui c'est mieux effectivmenet de procéder comme ca.
Bref, le @ dans 99 % des cas ne doit pas etre utilisé.
Yep. je suis d'accord. Etienne
KEvin
Krystyan a proclame :
un @ permet, devant un code php, de cacher d'éventuelle erreur. ceci est très usité devant les requetes sur une bdd, cela permet de ne pas montrer l'erreur d'appel à la base si erreur il y a
de toute facon il vaut mieux ne _jamais_ montrer les erreurs qu'un script peut recontrer, ce qui ne veut pas dire ne pas pouvoir (pour le developpeur) en prendre connaissance : je conseille a tout le monde d'utiliser les directives error_log = true et display_errors = false ainsi que error_reporting = E_ALL
-- KEvin
Krystyan a proclame :
un @ permet, devant un code php, de cacher d'éventuelle erreur.
ceci est très usité devant les requetes sur une bdd, cela permet de ne
pas montrer l'erreur d'appel à la base si erreur il y a
de toute facon il vaut mieux ne _jamais_ montrer les erreurs qu'un
script peut recontrer, ce qui ne veut pas dire ne pas pouvoir (pour le
developpeur) en prendre connaissance : je conseille a tout le monde
d'utiliser les directives error_log = true et display_errors = false
ainsi que error_reporting = E_ALL
un @ permet, devant un code php, de cacher d'éventuelle erreur. ceci est très usité devant les requetes sur une bdd, cela permet de ne pas montrer l'erreur d'appel à la base si erreur il y a
de toute facon il vaut mieux ne _jamais_ montrer les erreurs qu'un script peut recontrer, ce qui ne veut pas dire ne pas pouvoir (pour le developpeur) en prendre connaissance : je conseille a tout le monde d'utiliser les directives error_log = true et display_errors = false ainsi que error_reporting = E_ALL
-- KEvin
Krieger92
"Stef" wrote in news:bg0per$p5l$:
bonjour en decortiquant certaines sources php, je 'ai pu constater l'utilisation du signe '@' devant certaines fonctions... (par exmple: if (!@file_exists(@($file)) ... une bonne ame pourrait elle m'expliquer de quoi il en retourne? merci d'avance
Salut,
cela évite l'affichage des messages en cas d'erreur...
Pour ton exemple, si le fichier n'existe pas, l'on ne verra pas message d'erreur comme quoi ton fichier est absent et il continuera le traitement.
Pas très utile dans du code propre mais pratique pour certaines fonctions que tu recherches et qui te sortes quand meme des messages d'erreurs.
"Stef" <stef@somewhere.com> wrote in
news:bg0per$p5l$1@news-reader3.wanadoo.fr:
bonjour
en decortiquant certaines sources php, je 'ai pu constater
l'utilisation du signe '@' devant certaines fonctions...
(par exmple: if (!@file_exists(@($file)) ...
une bonne ame pourrait elle m'expliquer de quoi il en retourne?
merci d'avance
Salut,
cela évite l'affichage des messages en cas d'erreur...
Pour ton exemple, si le fichier n'existe pas, l'on ne verra pas message
d'erreur comme quoi ton fichier est absent et il continuera le traitement.
Pas très utile dans du code propre mais pratique pour certaines fonctions
que tu recherches et qui te sortes quand meme des messages d'erreurs.
bonjour en decortiquant certaines sources php, je 'ai pu constater l'utilisation du signe '@' devant certaines fonctions... (par exmple: if (!@file_exists(@($file)) ... une bonne ame pourrait elle m'expliquer de quoi il en retourne? merci d'avance
Salut,
cela évite l'affichage des messages en cas d'erreur...
Pour ton exemple, si le fichier n'existe pas, l'on ne verra pas message d'erreur comme quoi ton fichier est absent et il continuera le traitement.
Pas très utile dans du code propre mais pratique pour certaines fonctions que tu recherches et qui te sortes quand meme des messages d'erreurs.
[ Psykokwak ]
lutilisation du symbole @ devand une fonction permet d'inhiber tout message d'erreur quelle serais suceptible de provoquer ex : chdir('/root/psykokwak/'); va retourner une erreur dinterpretation si le repertoir '/root/psykokwak/' nexiste pas. donc on place un @ avant la fonction : @chdir('/root/psykokwak/'); qui 'cachera' les eventuels msg derreur. il est evidant que meme si on inhibe la fonction et quelle provoque une erreur, cela risque de generer des erreurs de comportement dans la suite de lexecution. en generale c'est a evité au maximum, en essayant de traiter l'exeption par des conditions ou par
try/catch (php5)
lutilisation du symbole @ devand une fonction permet d'inhiber tout message
d'erreur quelle serais suceptible de provoquer
ex :
chdir('/root/psykokwak/');
va retourner une erreur dinterpretation si le repertoir '/root/psykokwak/'
nexiste pas.
donc on place un @ avant la fonction :
@chdir('/root/psykokwak/');
qui 'cachera' les eventuels msg derreur.
il est evidant que meme si on inhibe la fonction et quelle provoque une
erreur, cela risque de generer des erreurs de comportement dans la suite de
lexecution.
en generale c'est a evité au maximum, en essayant de traiter l'exeption par
des conditions ou par
lutilisation du symbole @ devand une fonction permet d'inhiber tout message d'erreur quelle serais suceptible de provoquer ex : chdir('/root/psykokwak/'); va retourner une erreur dinterpretation si le repertoir '/root/psykokwak/' nexiste pas. donc on place un @ avant la fonction : @chdir('/root/psykokwak/'); qui 'cachera' les eventuels msg derreur. il est evidant que meme si on inhibe la fonction et quelle provoque une erreur, cela risque de generer des erreurs de comportement dans la suite de lexecution. en generale c'est a evité au maximum, en essayant de traiter l'exeption par des conditions ou par
try/catch (php5)
Jean-Marc Molina
Comme l'a dit Psykokwak il ne faut pas utiliser le @ de manière abusive. Le mieux c'est de suivre la logique de son application. Par exemple tu peux vouloir exploiter qu'une fonction échoue pour faire un traitement spécifique. Dans le cas d'une sélection de fichier, il faut vérifier que le fichier existe bien, sinon tu te retrouves avec un message d'erreur et une application boguée. Le @ te permet donc de dissimuler un message d'erreur système qui ne veut rien dire à l'utilisateur, il vaut mieux afficher "Fichier introuvable, merci de bien vouloir utiliser le bouton parcourir et sélectionner un fichier.", avec toute la mise en forme qu'il se doit. De même pour un chdir, si tu demandes à l'utilisateur de saisir le chemin d'un répertoire... dissimuler l'erreur... afficher un message personnalisé. Donc pour moi le @ est nécessaire si tu veux rendre une application "user friendly", ils n'ont que faire des messages d'erreurs PHP, comme d'une erreur qui survient quand une requête échoue par exemple. Ma technique c'est de ne pas utiliser les @ dans un premier temps, dans la phase de développement, déboguage et test de mon application. Ainsi j'ai tous les messages d'erreurs. Par contre je prévois aussi l'utilisation de messages alternatifs. Par la suite j'utilise @ pour dissimuler les messages de PHP, seuls les miens restent visibles pour l'utilisateur.
Pas très utile dans du code propre mais pratique pour certaines fonctions que tu recherches et qui te sortes quand meme des messages d'erreurs.
Il faut prévoir une "porte de sortie", un if, else... Afin de traiter les 2 valeurs de retour : succès et échec (pas forcément une erreur, un gogue mais plutôt une erreur logique).
Comme l'a dit Psykokwak il ne faut pas utiliser le @ de manière abusive.
Le mieux c'est de suivre la logique de son application.
Par exemple tu peux vouloir exploiter qu'une fonction échoue pour faire un
traitement spécifique.
Dans le cas d'une sélection de fichier, il faut vérifier que le fichier
existe bien, sinon tu te retrouves avec un message d'erreur et une
application boguée. Le @ te permet donc de dissimuler un message d'erreur
système qui ne veut rien dire à l'utilisateur, il vaut mieux afficher
"Fichier introuvable, merci de bien vouloir utiliser le bouton parcourir et
sélectionner un fichier.", avec toute la mise en forme qu'il se doit.
De même pour un chdir, si tu demandes à l'utilisateur de saisir le chemin
d'un répertoire... dissimuler l'erreur... afficher un message personnalisé.
Donc pour moi le @ est nécessaire si tu veux rendre une application "user
friendly", ils n'ont que faire des messages d'erreurs PHP, comme d'une
erreur qui survient quand une requête échoue par exemple. Ma technique c'est
de ne pas utiliser les @ dans un premier temps, dans la phase de
développement, déboguage et test de mon application. Ainsi j'ai tous les
messages d'erreurs. Par contre je prévois aussi l'utilisation de messages
alternatifs. Par la suite j'utilise @ pour dissimuler les messages de PHP,
seuls les miens restent visibles pour l'utilisateur.
Pas très utile dans du code propre mais pratique pour certaines fonctions
que tu recherches et qui te sortes quand meme des messages d'erreurs.
Il faut prévoir une "porte de sortie", un if, else... Afin de traiter les 2
valeurs de retour : succès et échec (pas forcément une erreur, un gogue mais
plutôt une erreur logique).
Comme l'a dit Psykokwak il ne faut pas utiliser le @ de manière abusive. Le mieux c'est de suivre la logique de son application. Par exemple tu peux vouloir exploiter qu'une fonction échoue pour faire un traitement spécifique. Dans le cas d'une sélection de fichier, il faut vérifier que le fichier existe bien, sinon tu te retrouves avec un message d'erreur et une application boguée. Le @ te permet donc de dissimuler un message d'erreur système qui ne veut rien dire à l'utilisateur, il vaut mieux afficher "Fichier introuvable, merci de bien vouloir utiliser le bouton parcourir et sélectionner un fichier.", avec toute la mise en forme qu'il se doit. De même pour un chdir, si tu demandes à l'utilisateur de saisir le chemin d'un répertoire... dissimuler l'erreur... afficher un message personnalisé. Donc pour moi le @ est nécessaire si tu veux rendre une application "user friendly", ils n'ont que faire des messages d'erreurs PHP, comme d'une erreur qui survient quand une requête échoue par exemple. Ma technique c'est de ne pas utiliser les @ dans un premier temps, dans la phase de développement, déboguage et test de mon application. Ainsi j'ai tous les messages d'erreurs. Par contre je prévois aussi l'utilisation de messages alternatifs. Par la suite j'utilise @ pour dissimuler les messages de PHP, seuls les miens restent visibles pour l'utilisateur.
Pas très utile dans du code propre mais pratique pour certaines fonctions que tu recherches et qui te sortes quand meme des messages d'erreurs.
Il faut prévoir une "porte de sortie", un if, else... Afin de traiter les 2 valeurs de retour : succès et échec (pas forcément une erreur, un gogue mais plutôt une erreur logique).