malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 27 sept. 2007 à 13:40
Hello,
c'est plus grave que ça ce laxisme dans les comparaisons.
empty() va vérifier qu'une valeur est vide, ou nulle, ou false...
'' aussi...
ce qui implique que 0 rentre dans ces deux cas.
Et quand après on a aussi ça :
# public static function notZero($value)
# {
# if ($value == 0) {
# return false;
# }
#
# return true;
# }
Ca devient très embêtant, car ce code ne vérifie absolument pas si la valeur est égale à 0. Si elle est false, ou '', c'est pareil.
Quand on fait un code de traitement de données, on DOIT coder de manière stricte! Tes comparaisons doivent être strictes, et tu ne peux pas te permettre de ne pas connaître les différences entre empty(), isset(), is_null(), is_int(), ==, ===, !=, !== etc.
Sinon, ton code va forcément être buggé.
Et en l'occurence, il l'est.
Sinon, bien aussi pour les filtres en effet :-) Mais tu devrais approfondir, tu t'en sers peu là...et ils peivent justement t'éviter bien des déboires.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 27 sept. 2007 à 10:59
en fait ta double vérification ne fait que te perdre du temps de calcul et des lignes de code en plus :)
cs_NainPuissant
Messages postés12Date d'inscriptionmardi 4 octobre 2005StatutMembreDernière intervention26 septembre 2007 26 sept. 2007 à 10:09
Hey merci pour pathinfo je connaisais pas =o.
Et pour les != '' je fais juste un double test : avec != et avec !empty... juste au cas où =P.
Bon après pour les fonctions de check, j'ai juste fais des trucs simples chacun peut faire sa ptite fonction.
+²
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 26 sept. 2007 à 09:08
De bonnes idées, notamment l'implémentation de l'extension Filter de PHP5. Par contre j'ai quelques remarques à te faire pour améliorer tout ça :
1/ Remplacer tes != '' par !empty($maVar)
2/ Une extension doit plutôt se récupérer à partir de la fonction pathinfo() et de sa constante PATHINFO_EXTENSION.
27 sept. 2007 à 13:40
c'est plus grave que ça ce laxisme dans les comparaisons.
empty() va vérifier qu'une valeur est vide, ou nulle, ou false...
'' aussi...
ce qui implique que 0 rentre dans ces deux cas.
Et quand après on a aussi ça :
# public static function notZero($value)
# {
# if ($value == 0) {
# return false;
# }
#
# return true;
# }
Ca devient très embêtant, car ce code ne vérifie absolument pas si la valeur est égale à 0. Si elle est false, ou '', c'est pareil.
Quand on fait un code de traitement de données, on DOIT coder de manière stricte! Tes comparaisons doivent être strictes, et tu ne peux pas te permettre de ne pas connaître les différences entre empty(), isset(), is_null(), is_int(), ==, ===, !=, !== etc.
Sinon, ton code va forcément être buggé.
Et en l'occurence, il l'est.
Sinon, bien aussi pour les filtres en effet :-) Mais tu devrais approfondir, tu t'en sers peu là...et ils peivent justement t'éviter bien des déboires.
27 sept. 2007 à 10:59
26 sept. 2007 à 10:09
Et pour les != '' je fais juste un double test : avec != et avec !empty... juste au cas où =P.
Bon après pour les fonctions de check, j'ai juste fais des trucs simples chacun peut faire sa ptite fonction.
+²
26 sept. 2007 à 09:08
1/ Remplacer tes != '' par !empty($maVar)
2/ Une extension doit plutôt se récupérer à partir de la fonction pathinfo() et de sa constante PATHINFO_EXTENSION.
++