Plus propre ....

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 - 14 juin 2005 à 09:02
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 14 juin 2005 à 17:59
Bonjour,

Est-il plus propre de faire un !strlen(toto) ou toto == "" ??

Je pencherai pour la première .. Et vous ??

Merci.

S.

24 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
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

[url]http://coucou747.hopto.org/url
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 juin 2005 à 09:46
> Est-il plus propre de faire un !strlen(toto) ou toto = "" ??



Heu...



le plus propre, c'est empty ($toto).
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 juin 2005 à 09:54
bah, j'ai pas testé, mais pourquoi appliquer une fonction ?

$toto===''


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

[url]http://coucou747.hopto.org/url
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 juin 2005 à 10:07
selon moi, le plus propre, c'est largement ===''

en tout cas, strlen(), n'est pas approprié ici...


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

[url]http://coucou747.hopto.org/url
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 juin 2005 à 10:11
Et pourquoi ?

A quoi sert empty () ?
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juin 2005 à 11:26
Salut,



je rejoints malalam, prends un empty()



cette fonction te permet de savoir si une variable est vide ou non.



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
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

[url]http://coucou747.hopto.org/url
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
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...
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juin 2005 à 12:52
c'est certain que le ==='' est plus rapide, perso je trouve ça moins propre que le empty.



Ensuite le empty() et le ==='' n'ont pas les mêmes fonctions (dans le cas présent si, mais pas toujours)



Bref en optimisation ouais autant prendre le ==='', mais en propreté le empty() est meilleur.



Bref tout dépend du projet à réaliser comme l'a dit Malalam, et du résultat escompté surtout.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
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

[url]http://coucou747.hopto.org/url
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juin 2005 à 13:35
<?php

$variable=NULL;



if(empty($variable))

{

echo 'variable $variable vide';

}

if($variable==='')

{

echo 'variable NULL vide';

}

?>



L'intérêt du empty (entre autres)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 juin 2005 à 14:10
c'est plus le même usage (puisque ça ne fait plus la même chose...)

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

[url]http://coucou747.hopto.org/url
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
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.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juin 2005 à 14:19
D'ou le " Bref tout dépend du projet à réaliser comme l'a dit Malalam, et du résultat escompté surtout."



dans mon précédent message.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 juin 2005 à 14:20
Heu mon dernier message s'adressait à coucou

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 juin 2005 à 14:22
Moi j'avais compris lol.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 juin 2005 à 16:49
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...

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

[url]http://coucou747.hopto.org/url
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 juin 2005 à 16:55
C'est bien ce que je voulais sous-entendre lol.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
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 ?



Bon courage ^^

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous