syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 2012
-
14 juin 2005 à 09:02
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
14 juin 2005 à 17:59
Bonjour,
Est-il plus propre de faire un !strlen(toto) ou toto == "" ??
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 14 juin 2005 à 09:35
temps d'exécution pour 100000 calculs
$a=''; if (!strlen($a)) echo 'toto';
0.333305120468
$a=''; if (0==strlen($a)) echo 'toto';
0.393241882324
$a=''; if (0===strlen($a)) echo 'toto';
0.378662109375
$a=''; if (!$a) echo 'toto';
0.324670791626
$a=''; if ($a=='') echo 'toto';
0.33939409256
$a=''; if ($a==='') echo 'toto';
0.30597782135
sache que c'est assez variable, mais je penses que quando on compare une variable, on la compare avec qqch du même type... on a a peu près la même chose quand la variable a est pleine...
In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 juin 2005 à 09:56
Il a demande ce qui etait le plus propre. Le plus propre etant a mon sens d'utiliser les fonctions faites pour. C'est aussi plus lisible a mon sens. Apres cela depend de ce que tu veux tester exactement...
Parce que dans les deux cas, il y a des inconvenients.
Vous n’avez pas trouvé la réponse que vous recherchez ?
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 14 juin 2005 à 12:35
pour 100000 fois :
$a='lol'; if ($a==='') echo 'toto';
0.256056070328
$a='lol'; if (empty($a)) echo 'toto';
0.261962175369
In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 juin 2005 à 12:46
super...lol.
Tu sais, je rejoins quelques avis qui ont ete exprimes ici :
un code clair et logique vaut 1000 fois mieux, dans un environnement professionnel, ou meme lorsqu'on bosse sur nos propres codes que l'on devra reprendre quelques mois plus tard...qu'un code rapide, et peu clair.
empty() sert a ca, et a l'avantage d'etre plus modulable. Tu veux etre sur que c'est une chaine ? is_string (). C'est plus clair, tu sais ou tu vas, tu le sauras meme apres des annees, et plus important, d'autres codeurs le sauront aussi immediatement.
N'utilise que des trucs genre toto === ''...et dans un gros projet, ou simplement quand tu bosseras avec d'autres personnes, ce sera rapidement le bordel et personne ne comprendra a quoi ca rime.
Crois en mon experience!
Et il vaut mieux perdre 0,01 ms pour 100000 conditions, que de perdre plusieurs jours a essayer de s'y retrouver dans un code.
Parce que franchement, 100000 conditions...faut vraiment un TRES GROS projet...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 14 juin 2005 à 13:24
c'est pas 0.1 ms mais 0.1 s...
chacun ses gouts, perso, recopier la variable en ram, je trouve ça chiant (quand on appelle une fonction), c'est lent, et celui qui ne sais pas à quoi sert empty (ne programmmes pas en php, mais c'est pas la question) ne pourra pas lire le code sans chercher... avec une comparaison simple, c'est totalement différent...
In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 juin 2005 à 14:18
Concernant ta remarque precedente : celui qui ne connait pas le php...fait comme tout bon developpeur qui se respecte : quand il ne comprend pas une fonction du language, il regarde la doc. Perso, je regarde la doc sans arret, pas parce que je ne connais pas les fonctions, mais parce que je me refuse a me souvenir l'ordre de leurs parametres par exemple... ;-) Bref, ce n'est pas un bon argument a mon sens. Un developpeur sait developper. Ca ne veut pas dire qu'il a appris tous les languages par coeur. Savoir programmer ce n'est pas connaitre un language precis sur le bout des doigts.
Ceci dit, empty() est assez evocatrice lol.
Et puis a ce compte, on utilise pas les fonctions de tri (c'est un exemple) parce que si ca se trouve un codeur ne connaissant pas php ne saura pas ce que la fonction fait exactement, alors on va reecrire une fonction de tri...nan, ca se tient pas.
Ensuite, tu me reparles encore de vitesse (recopier la variable en ram)...tandis que je (nous lol) te parle de clarte, et de facilite a transformer, adapter, gerer de nouveaux cas.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 14 juin 2005 à 17:21
"nimporte quel programmeur doit pouvoir relire le code de nimporte quel
langage...les fonctions se ressemblent, elles ont les mêmes noms ou des
noms similaires"
Hum, donc un programmeur PHP peut lire un code Assembleur et savoir à quoi ça correspond sans jamais en avoir fait ?