Concatener deux noms variables [Résolu]

Signaler
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009
-
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009
-
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 ;-)

23 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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]
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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 :-)
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009

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 ;-)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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.
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
$tab .= $val ou $tab = $tab.$val, c'est pareil
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

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>
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009

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 ;)
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
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...
Messages postés
99
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
5 août 2009

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 :/
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
mouais... tu veux plutot dire $tab_menu.$val = $tab_menu !
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
Ben je crois que je vais aussi aller lire cet article ... oops
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

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>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Chais pas...c'est possible, de maniere un peu differente, en C, en java...
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
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
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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 ;)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Meuh...?? lol ?? Quelle fonction ? Quelle creation ?
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
Ne me répondez pas lol... :P

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

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