Créer des variables au nom dynamique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Créer des variables au nom dynamique

par AB » 30 janv. 2008, 20:08

C'est certain qu'en général si on peut faire la même chose avec moins de code faut pas se gêner

par supercanard » 30 janv. 2008, 18:37

C'est bien ça que je veut faire.
Merci pour l'info, je savais pas.

En fait mon idée était de créer des variables avec la valeur 1 pour pour pouvoir les tester.

Exemple si $toto = 1, il se passe ça

Mais tout compte fait je ferrais mieux de stocker tout ça dans tableau au lieu de déclarer un tas de variables ?

J'aurais donc un tableau du genre : "pages", "toto", "hic", etc...

Et ça donnerais : Si $tableau contient la valeur toto, il se passe ça

Ca revient au même que la première méthode, sauf que je ne déclare pas une tonne de variables à travers mon script.

Mieux ou pas mieux ?

par Ryle » 30 janv. 2008, 18:22

Pas sur d'avoir tout bien compris ce que tu voulais faire, mais ceci devrait t'aider. Pour construire un nom de variable dynamique en php, on utilise cette syntaxe :
${'nom_variable'}
La chaine pouvant être, une simple chaine, mais également une variable, ou une concaténation de chaines, variables, etc.
$var = 1;
${'page' . $var} = 'toto';
echo $page1; // affiche "toto"

Créer des variables au nom dynamique

par supercanard » 30 janv. 2008, 18:08

Bonjour,

Je ne sais pas si le titre de mon topic est bien correct par rapport à ce que je cherche à faire.

Bref voilà mon code qui fonctionne pour le moment :
while ($data_modules = mysql_fetch_array($result_modules)) {
	echo $data_modules['nom'] = 1; // La variable créée ressemblera à : $nommodule = 1
	
};
echo $pages;
Explication : $data_modules['nom'] et le résultat de ma requête, il contient la valeur 'Pages'
Je lui attribu une valeur : = 1
Donc je viens en fait de créer la variable $pages qui affiche bien 1 quand je fait un echo

Ce qui ce complique c'est que je voudrais que ma variable $page est une chaîne de caractère devant elle : $mod_pages
Evidement je ne peut pas faire comme ça car cela à pour résultat d'afficher 'mod_', logique... :
echo 'mod_'.$data_modules['nom'] = 1
Mais du coups comment faire pour obtenir le résultat voulu ?