Comment éviter la répétition de variable?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Comment éviter la répétition de variable?

Message le Mer Fév 04, 2009 22:40

Supposons :
Code: Tout sélectionner
if ($variable1 == AA){
echo 'aa';
}
if ($variable1 == SS){
echo 'ss ';
}
if ($variable1 == ZZ){
echo 'zz';
}
if ($variable1 == DD){
echo 'dd';
}

..répété X fois dans une page .

Y a t'il moyen de faire autrement pour éviter la répétition et donc alléger le code?
Si oui, comment ?
Merci


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: Comment éviter la répétition de variable?

Message le Mer Fév 04, 2009 22:52

avec un tableau sans aucun doute.

au hasard : -http://www.vulgarisation-informatique.com/tableaux-php.php


OTP
Modérateur
Modérateur
 
Messages: 19531
Inscription: 16 Déc 2005

Re: Comment éviter la répétition de variable?

Message le Mer Fév 04, 2009 23:08

Case ou un truc dans le genre ?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Comment éviter la répétition de variable?

Message le Mer Fév 04, 2009 23:16

oki, merci .
Je pensais plutôt à une fonction mis à part dans un autre fichier:
Code: Tout sélectionner
<?php
$teste = "AA";

function Remplacetout($chaine)
{
    $grand = Array("/AA/", "/ZZ/", "/EE/");
    $petit = Array("aa", "zz", "ee");
   
    $chaine = preg_replace($grand, $petit, $chaine); 
   
    return $chaine;
}

echo Remplacetout($teste);
//retourne aa

?>

Sa vous semble correcte et plus rapide?


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Comment éviter la répétition de variable?

Message le Mer Fév 04, 2009 23:17

OTP a écrit:Case ou un truc dans le genre ?


+1 OTP. Le

Code: Tout sélectionner
switch
{
    case 'AA':
    break;
    case 'BB':
    break;
    default:
    break;
}


est ton ami.


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Comment éviter la répétition de variable?

Message le Mer Fév 04, 2009 23:38

Chiote, je n'en comprend pas le fonctionnement ^^.

Je ne capte pas comment ton code remplace "AA" en "aa" partant du principe que $teste = "AA"; :?:

Une petite explication please.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Comment éviter la répétition de variable?

Message le Mer Fév 04, 2009 23:45

Je viens de VRAIMENT comprendre ce que tu cherches à faire (je crois). Ton idée est la bonne dans ce cas. preg_replace en utilisant des tableaux pour définir les éléments recherchés et les éléments par lesquels ils doivent être remplacés.


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Comment éviter la répétition de variable?

Message le Jeu Fév 05, 2009 0:00

En gros, je récupère mes données en bdd qui sont enregistrées sous la forme "Camping_car", "Mobil_home",etc...

Pour le moment je fais un truc du style:
Si ma variable = Camping_car alors j'affiche "Loue Camping car"
Si ma variable = Mobil_home alors j'affiche "Loue Mobil home"

Donc à la finale je me retrouve avec beaucoup de if() parfois répété plusieurs fois. Moi je veux écrire le code ou fonction faisant appel à cette série de if() une seule fois pour pouvoir ensuite appelé plus facilement et plus rapidement ce même code 8O (pas simple à expliqué ^^).

Ps: Je crois avoir comprit ton code:
Code: Tout sélectionner
<?php
$teste = "AA";

switch ($teste) {
    case AA:
        echo "teste égal aa";
        break;
    case ZZ:
        echo "teste égal zz";
        break;
    case EE:
        echo "teste égal ee";
        break;
}
?>


Marie-Aude
Modérateur
Modérateur
 
Messages: 11878
Inscription: 5 Juin 2006

Re: Comment éviter la répétition de variable?

Message le Jeu Fév 05, 2009 0:28

La solution pour ton système c'est

$affiche = array ("aa" => "affiche aa", "bb" => "affiche bb") ;

echo $affiche[lavariable]

Ou si tu en as beaucoup tu fais une petite requete dans ta base, genre select ID, affiche que tu stockes dans une variable tableau


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: Comment éviter la répétition de variable?

Message le Jeu Fév 05, 2009 7:05

tryan a écrit:En gros, je récupère mes données en bdd qui sont enregistrées sous la forme "Camping_car", "Mobil_home",etc...

Pour le moment je fais un truc du style:
Si ma variable = Camping_car alors j'affiche "Loue Camping car"
Si ma variable = Mobil_home alors j'affiche "Loue Mobil home"
....


Dans ce cas tu peux (aussi peut-être) ajouter un champ "variable_a_afficher" par exemple, voir une table style "variable","variable_a_afficher"

ça te permettrait d'en ajouter d'autres sans devoir revenir dans le code à chaque fois


Marie-Aude
Modérateur
Modérateur
 
Messages: 11878
Inscription: 5 Juin 2006

Re: Comment éviter la répétition de variable?

Message le Jeu Fév 05, 2009 7:35

Sinon il y a un truc qui fait ça tout seul et très bien, c'est gettext :)


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Re: Comment éviter la répétition de variable?

Message le Jeu Fév 05, 2009 9:40

tryan a écrit:En gros, je récupère mes données en bdd qui sont enregistrées sous la forme "Camping_car", "Mobil_home",etc...

Pour le moment je fais un truc du style:
Si ma variable = Camping_car alors j'affiche "Loue Camping car"
Si ma variable = Mobil_home alors j'affiche "Loue Mobil home"



Tu peux pas juste faire :
Code: Tout sélectionner
echo "Loue ".str_replace("_"," ",$variable);

:?:


moktoipas
WRInaute passionné
WRInaute passionné
 
Messages: 2326
Inscription: 29 Juin 2004

Re: Comment éviter la répétition de variable?

Message le Jeu Fév 05, 2009 9:49

Code: Tout sélectionner
$bdd[]="Camping_car"; $html[]="Loue Camping car";
$bdd[]="Mobil_home"; $html[]="Loue Mobil home";

echo str_replace($bdd,$html,$variable);



?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Comment éviter la répétition de variable?

Message le Jeu Fév 05, 2009 10:57

Arfff, du coup je ne sais plus quelle code adapter ^^.
Une fonction (debut de poste par moi), switch (proposé par OTP) ou array (proposé par Marie-Aude) .. :?:


moktoipas
WRInaute passionné
WRInaute passionné
 
Messages: 2326
Inscription: 29 Juin 2004

Re: Comment éviter la répétition de variable?

Message le Jeu Fév 05, 2009 11:02

Et ma solution, elle pue? :D

LOL

mais tu peu mettre dans une fonction toutes les solutions proposées...

Comment éviter la répétition de variable?

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité