OVH Cloud OVH Cloud

Optimisation code

24 réponses
Avatar
Michel
Bonjour,

Voici ce code simple :
if($etat==1){$f="a"; $l="a";}
if($etat==2){$f="b"; $l="a";}
if($etat==3){$f="c"; $l="a";}
if($etat==4){$f="a"; $l="b";}
if($etat==5){$f="a"; $l="c";}

Cela me semble peut élégant, est-il possible de l'optimiser ?

Merci de votre aide à un débutant éclairé.

Michel

10 réponses

1 2 3
Avatar
Philippe Chaissac
Bonjour,

Voici ce code simple :
if($etat==1){$f="a"; $l="a";}
if($etat==2){$f="b"; $l="a";}
if($etat==3){$f="c"; $l="a";}
if($etat==4){$f="a"; $l="b";}
if($etat==5){$f="a"; $l="c";}

Cela me semble peut élégant, est-il possible de l'optimiser ?


Pour s'amuser alors ;-) :

$table_etat = array(
1 => array("a","a"),
2 => array("b","a"),
3 => array("c","a"),
4 => array("a","b"),
5 => array("a","c")
);
$f=$table_etat[$etat][0];
$l=$table_etat[$etat][1];

ou bien, plus compact mais moins élégant :

$table_etat = array(1=>"aa", 2=>"ba", 3=>"ca", 4=>"ab", 5=>"ac");
$f=substr($table_etat[$etat],0,1);
$l=substr($table_etat[$etat],-1);

ou bien encore (vraiment, vraiment pour s'amuser :-) !) :

if ($etat>=1 && $etat<=5) {
$f=($etat==2)?"b":(($etat==3)?"c":"a");
$l=($etat==4)?"b":(($etat==5)?"c":"a");
};

Avatar
DJiK
Arf, 4 réponses identiques dans la m^ minute, je crois que c'est réglé! ^^



mes profs mon (m'ont ;-))
toujours dit de ne pas utiliser les guillemets si il n'y a pas de variables
a interpréter à l'interieur...



Ayant appris le PHP par moi m^, je me suis toujours demandé s'il y avait une différence.
Je crois que ça doit pas changer grand chose d'après ce que j'ai lu, mais j'aimerai bien savoir!

--
DJiK

Avatar
Philippe Chaissac


$etats=array(1=>'a|a',2=>'b|a',3=>'c|a',4=>'a|b',5=>'a|c');
list($f,$l)=explode('|',$etats[$etat]);


Bravo ! Un deulignes !
Tu gagnes un abonnement d'un an à Hebdogiciel :-) !

ça marche, mais de là à dire que c'est élégant :)


Ah si, tout de même ! Pas selon les critères qualités high-tech hype
tendance d'aujourd'hui (ça manque d'objet), mais objectivement je trouve
ça beau :-)

Avatar
poji
Philippe Chaissac wrote:
Bravo ! Un deulignes !
Tu gagnes un abonnement d'un an à Hebdogiciel :-) !


Ouééééé o/ !!!

Avatar
Thibaut Allender
Switch, of course ! mais peut être avec des tableaux :
$ff=array('a','b','c','a','a');
$fl=array('a','a','a','b','c');


Presque ! Je dirais :
$ff=array(1=>'a','b','c','a','a');
$fl=array(1=>'a','a','a','b','c');


$f=$ff[$etat];
$l=$fl[$etat];



ou, avec l'array de depart :

$etat--;
$f = $ff[$etat];
$l = $fl[$etat];

--
thibaut allender | freelance | http://capsule.org


Avatar
Thibaut Allender
mes profs mon (m'ont ;-))
toujours dit de ne pas utiliser les guillemets si il n'y a pas de
variables a interpréter à l'interieur...


Ayant appris le PHP par moi m^, je me suis toujours demandé s'il y avait
une différence.
Je crois que ça doit pas changer grand chose d'après ce que j'ai lu,
mais j'aimerai bien savoir!


sur de nombreuses opérations, c'est perceptible
mais c'est vrai que sur 2 3 opérations isolées, c'est de la drosophilie...

--
thibaut allender | freelance | http://capsule.org


Avatar
Yopopop
"Philippe Chaissac" a écrit

Bravo ! Un deulignes !
Tu gagnes un abonnement d'un an à Hebdogiciel :-) !


Ah Hebdogiciel ! que de souvenirs ;-))

j-p

Avatar
shak
"Thibaut Allender" a écrit dans le message de news:
mes profs mon (m'ont ;-))
toujours dit de ne pas utiliser les guillemets si il n'y a pas de
variables a interpréter à l'interieur...
Ooops :( ( l'orthographe n'est pas mon fort :/ )




Ayant appris le PHP par moi m^, je me suis toujours demandé s'il y avait
une différence.
Je crois que ça doit pas changer grand chose d'après ce que j'ai lu, mais
j'aimerai bien savoir!
La différence, je pense que tu la connait, les " sont interprétés mais pas


les '.
Donc si il n'y a pas de variables à l'intérieur, il ne sert à rien de mettre
des ".

sur de nombreuses opérations, c'est perceptible
mais c'est vrai que sur 2 3 opérations isolées, c'est de la drosophilie...
C'est vrai, mais au départ on commence toujours pas 2/3 opérations, comme tu

le dis, et à la fin ca finit par être énorme... Et je ne pense pas avoir le
courage de tout refaire une fois que le projet commence à devinir
conséquent, donc je prends l'habitude dès le début :).

Shak.



Avatar
billaud
poji writes:

Michel wrote:
Bonjour,

Voici ce code simple :
if($etat==1){$f="a"; $l="a";}
if($etat==2){$f="b"; $l="a";}
if($etat==3){$f="c"; $l="a";}
if($etat==4){$f="a"; $l="b";}
if($etat==5){$f="a"; $l="c";}

Cela me semble peut élégant, est-il possible de l'optimiser ?

Merci de votre aide à un débutant éclairé.

Michel


$etats=array(1=>'a|a',2=>'b|a',3=>'c|a',4=>'a|b',5=>'a|c');
list($f,$l)=explode('|',$etats[$etat]);

ça marche, mais de là à dire que c'est élégant :)


$tf = '.abcaa'; $f = $tf[$etat];
$tl = '.aaabc'; $l = $tl[$etat];

MB


PS: en C c'est plus rigolo, on peut ecrire
f = ".abcaa"[etat];



--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)


Avatar
DJiK
Ooops :( ( l'orthographe n'est pas mon fort :/ )



Si ça peut te consoler cherche des messages de jv2759 sur le forum de geckozone.org! ^^



OK, ben je vais essayer aussi. Le hic c'est que j'utilise souvent la fonction "echo sélection" de DevPHP qui backslahe les " toute seule. :-|

--
DJiK

1 2 3