Concatener deux noms variables

Résolu
cseagle
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009
- 26 juil. 2005 à 13:24
 Julie - 15 avril 2021 à 01:07
Bonjour tout le monde,



J'ai besoin d'une petite aide.



Voila je désire concatener ma variable $tab avec $val de manière à
obtenir ceci : $tab1 ou $tab2 .... donc en fait rajouter la valeur de
$val à la fin du nom de la variable $tab.



j'ai essayé $tab.$val ''; et $tab."$val" ''; mais ca ne marche pas.



Comment dois je faire ?



Merci d'avance ;-)
A voir également:

24 réponses

malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
26 juil. 2005 à 13:39
Hello,



tu peux aller voir les variables variables :

http://de2.php.net/manual/fr/language.variables.variable.php



Maintenant, je ne sais pas exactement pourquoi tu veux faire ca, mais
souvent, les gens tentent ce genbre d'experiences parce qu'il n'ont pas
pense a faire la meme chose avec des tableaux...:

$tab[$var]
3
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
26 juil. 2005 à 14:08
Ben oui je crois que tu l'as induis en erreur lol.



Quand tu fais $tab_menu = $tab_menu.$val;

tu fais un drole de truc...!

La concatenation, c'est contaner les VALEURS de 2 variables de type STRING.



La, tu concatenes la valeur d'un tableau (??) a la valeur d'une variable x. Ca risque pas de donner grandchose...



Bregf, quand tu fais ca :

$tab_menu = array($attributover,$attributout,$img,$aff_img_out,$aff_img_over);

$tab_menu = $tab_menu.$val;



Tu dis :

$tab_menu = un tableau bien defini, avec plusiurs entrees)



Puis la ligne d'apres

$tab_menu = une chaine resultante de la concatenation d'un tableau (impossible...), et d'une variable x (ok pour la variable x).



Au mieux tu auras :

$tab_menu = 'Array'.valeur de $var.

Au pire tu as deja une erreur, un warning, que tu ne vois pas parce que tu n'as pas l'error_reporting a E_ALL.



De rien pour la revision, mais je pense que tu n'avais jamais vraiment
appris cette lecon lol, et que tu ne l'as pas lu...Malik avait mal
compris ton probleme, c'est tout, et ne parlait pas de la meme chose
que toi : creation de variables variables. Il parlait juste de
concatenation entre deux chaines. Cet article parle justement de ces
variables...variables :-)
3
cseagle
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009

26 juil. 2005 à 14:20
En effet j'avais array1 array2....



Et oui Malalam j'avais pas lu la dernière ligne qui parler des tableaux (honte à moi :-/ je l'avais pas vu)



donc la soluce était :



${"tab_menu$val"} = $tab_menu;



Merci beaucoup tout le monde de m'avaoir aiguiller dans le droit chemin ;-)
3
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
26 juil. 2005 à 14:24
Je t'en prie, mais a ta place j'utiliserais vraiment les tableaux
plutot que les variables variables comme tu le fais la. C'ets plus
simple a utiliser, bcp plus...et ca suffit dans la plupart des cas
comme le soulignait Morph. Les variables variables c'est vite le bordel.

Mais bon, oui ${"tab_menu$val"} = $tab_menu; est tres correct :-)



Malik => bah lol, moi je l'ai lu, relu, j'ai teste, et j'ai decide que ca ne me plaisait pas comme bordel, lol.
3

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

Posez votre question
malik7934
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
26 juil. 2005 à 13:36
$tab .= $val ou $tab = $tab.$val, c'est pareil
0
morpheus262
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

26 juil. 2005 à 13:46
Je confirme la remarque de malalam combien de fois j ai eu ce probleme de mon nom de variable variable justement et les tableau marche dans beaucoup de cas.


<HR>
Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
0
cseagle
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009

Modifié le 15 avril 2021 à 10:11
Merci pour vos réponse rapide.



Alors Malik ta soluce semble fonctionner car je n'ai plus de messages d'erreur.



un nouveau problème vient de suivre hummm....



voici ma fonction :



if(isset($_GET['p']) AND !empty($_GET['p']) AND is_numeric($_GET['p'])) {

    if(is_integer($_GET['p']) AND ($_GET['p']<=8)) {

        $page = $_GET['p'];

    } else {

        $page = 1;

    }

} else {

    $page = 1;

}

function affiche_menu($page) {

    //$tab_page = array('accueil','letour','partenaires','presse','archives','liens','livredor','contact');

    $tab_page = array('1','2','3','4','5','6','7','8');

    reset($tab_page);

    while (list($key, $val) = each($tab_page)) {

        if($val == $page) { 

            $attributover = 'show';

            $attributout = 'show';

            $img = 'b';

            $aff_img_out = ''; 

            $aff_img_over = '';

        } else { 

            $attributover = 'show';

            $attributout = 'hide';

            $img = 'a';

            $aff_img_out =
"MM_swapImage('Image".$val."','','images/b".$val."b.gif',1);"; 

            $aff_img_over = 'MM_swapImgRestore();'; 

        }

        $tab_menu = array($attributover,$attributout,$img,$aff_img_out,$aff_img_over);

        $tab_menu = $tab_menu.$val;

    }

}



affiche_menu($page);



et je souhaite récupérer pour affichage les différentes valeurs



exemple :



MM_showHideLayers('accueil','','<?php echo
$tab_menu1[1]; ?>','tour03','','<?php echo $tab_menu2[1];
?>','partenaires','','<?php echo $tab_menu3[1];
?>','presse','','<?php echo $tab_menu4[1];
?>','archives','','<?php echo $tab_menu5[1];
?>','liens','','<?php echo $tab_menu6[1];
?>','livredor','','<?php echo $tab_menu7[1];
?>','contact','','<?php echo $tab_menu8[1]; ?>')">




Et la il me met que tous mes tableaux sont indéfinis (inexistant quoi).

Une idée ?

PS : merci Malalam pour le lien ca m'a fait une tite revision ;)
0
malik7934
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
26 juil. 2005 à 13:55
Ben il a raison. Tu les definis ou tes tableaux? Je me demande si je t'ai pas induit en erreur moi avec ma reponse et si ton prob est pas ailleurs...
0
cseagle
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009

Modifié le 15 avril 2021 à 10:12
Mes tableaux sont définis dans ma boucle :



$tab_menu = array($attributover,$attributout,$img,$aff_img_out,$aff_img_over);

$tab_menu = $tab_menu.$val;





Enfin je pense que c'est bon :/
0
malik7934
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
26 juil. 2005 à 14:03
mouais... tu veux plutot dire $tab_menu.$val = $tab_menu !
0
malik7934
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
26 juil. 2005 à 14:10
Ben je crois que je vais aussi aller lire cet article ... oops
0
morpheus262
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

26 juil. 2005 à 14:33
Des variables variables lol une fois j ai sorti ca a un prof d info il a failli me tuer lol il m a dis si les noms de variable commence a etre variable ca va devenir le bordel et bien php la fait lol. euh jem avance peut etre mais dans d autre langage c pas possible ca il me semble si ??


<HR>
Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
26 juil. 2005 à 15:02
Chais pas...c'est possible, de maniere un peu differente, en C, en java...
0
cs_GRenard
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

27 juil. 2005 à 17:58
Aye est-ce que c'est possible la réflexion en C++ comme en PHP/Java ?

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
0
FhX
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
27 juil. 2005 à 18:09
En même temps... les variables crées dans une fonction ne sont pas utilisable en dehord de cette dernière.



Normal que tu n'ais rien qui se soit crée ;)
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
27 juil. 2005 à 18:15
Meuh...?? lol ?? Quelle fonction ? Quelle creation ?
0
cs_GRenard
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

27 juil. 2005 à 18:22
Ne me répondez pas lol... :P

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
27 juil. 2005 à 18:24
Bah je te repondrais bien mais je n'en sais rien! Mais je presume oui, en tous cas le contraire m'etonnerait.
0
cs_GRenard
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

27 juil. 2005 à 18:35
Je trouve pas du tout, ou alors c'est des "plugin"...

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
0
FhX
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
27 juil. 2005 à 19:17
Malalam > Pour la fonction affiche_menu() de cseagle.
0