Concatener deux noms variables [Résolu]

Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Dernière intervention
5 août 2009
- - Dernière réponse : cseagle
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Dernière intervention
5 août 2009
- 28 juil. 2005 à 11:51
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 ;-)
Afficher la suite 

Votre réponse

20/23 réponses

Meilleure réponse
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
3
Merci
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]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de malalam
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
3
Merci
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 :-)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de malalam
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Dernière intervention
5 août 2009
3
Merci
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 ;-)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cseagle
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de malalam
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Dernière intervention
15 août 2009
0
Merci
$tab .= $val ou $tab = $tab.$val, c'est pareil
Commenter la réponse de malik7934
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Dernière intervention
16 février 2012
0
Merci
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>
Commenter la réponse de morpheus262
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Dernière intervention
5 août 2009
0
Merci
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 ;)
Commenter la réponse de cseagle
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Dernière intervention
15 août 2009
0
Merci
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...
Commenter la réponse de malik7934
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Dernière intervention
5 août 2009
0
Merci
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 :/
Commenter la réponse de cseagle
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Dernière intervention
15 août 2009
0
Merci
mouais... tu veux plutot dire $tab_menu.$val = $tab_menu !
Commenter la réponse de malik7934
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Dernière intervention
15 août 2009
0
Merci
Ben je crois que je vais aussi aller lire cet article ... oops
Commenter la réponse de malik7934
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Dernière intervention
16 février 2012
0
Merci
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>
Commenter la réponse de morpheus262
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
0
Merci
Chais pas...c'est possible, de maniere un peu differente, en C, en java...
Commenter la réponse de malalam
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Dernière intervention
30 juillet 2008
0
Merci
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
Commenter la réponse de cs_GRenard
Messages postés
2368
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
18 avril 2015
0
Merci
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 ;)
Commenter la réponse de FhX
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
0
Merci
Meuh...?? lol ?? Quelle fonction ? Quelle creation ?
Commenter la réponse de malalam
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Dernière intervention
30 juillet 2008
0
Merci
Ne me répondez pas lol... :P

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
Commenter la réponse de cs_GRenard
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
0
Merci
Bah je te repondrais bien mais je n'en sais rien! Mais je presume oui, en tous cas le contraire m'etonnerait.
Commenter la réponse de malalam
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Dernière intervention
30 juillet 2008
0
Merci
Je trouve pas du tout, ou alors c'est des "plugin"...

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
Commenter la réponse de cs_GRenard
Messages postés
2368
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
18 avril 2015
0
Merci
Malalam > Pour la fonction affiche_menu() de cseagle.
Commenter la réponse de FhX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.