Accueil > Forum > > > > Comment passer un NOM de variable en paramètre
Comment passer un NOM de variable en paramètre
lundi 10 octobre 2005 à 20:07:47 |
Comment passer un NOM de variable en paramètre

tiris
|
Bonjour
Je finit mon année d'étude bientôt et suis en stage. Je découvre php sur mon sujet de stage :(
J'ai une classe de stats qui me construit des tableaux. Pour l'instant, 3 tableaux y sont calculés pour construire au final le tableau à afficher. Pour l'instancier, je passe des bouts de requêtes. Deux fonctionnent bien mais la troisième est imbriquée dans une boucle avec une variable qui bouge sur chaque tour. Mon problème est de savoir comment passer un nom de variable en paramètre (et non la valeur).
Par exemple: $monArray = array( monChamp , maTable , Year = $annee AND month = $moisDepart) $monTableau = new newStat( $monArray );
Bien sur ce code ne marche pas, php cherche à interpréter $annee et $moisDepart à l'appel.
Si quelqu'un à une idée, il est le bienvenu 
|
|
lundi 10 octobre 2005 à 21:00:21 |
Re : Comment passer un NOM de variable en paramètre

davwart
|
$a : variable nommée "a"
$$a : ton nom de variable devient la valeur de $a.
------------------------------------- Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
|
|
lundi 10 octobre 2005 à 23:16:25 |
Re : Comment passer un NOM de variable en paramètre

FhX
|
"$monArray = array( monChamp , maTable , Year = $annee AND month = $moisDepart)"
Normal, lorsque tu déclares ton tableau, tes variables sont converties dans leurs valeurs respectives.
Tu ne peux pas passer un nom de variable... du moins j'ai jamais essayé, mais je crois pas que c'est faisable.
En même temps, ton tableau est mal écrit. Le "Year = $annee AND month = $moisDepart", ca sort d'ou ca ?
|
|
mardi 11 octobre 2005 à 01:48:21 |
Re : Comment passer un NOM de variable en paramètre

tiris
|
Tu dois avoir raison la faisabilité du truc. Le "Year...." est une partie de la clause WHERE qui doit être reconstitué dans la classe (en requête complète donc). C'est bien sur interprété avant l'appel et part en string dans ma requête. Ce que je voudrais c'est des requêtes interprétées (dans la classe) comme ça: for ($i=0;$i<$periode;$i++){ $sql="SELECT monchamp FROM matable WHERE year = $annee"; $mysql -> execute($sql); bla bla...; $annee++; } ou comme ça for ($i=0;$i<$countMontype;$i++){ $sql="SELECT monchamp FROM matable WHERE type =".$montype[$i]; $mysql -> execute($sql); bla bla...; }
il me faut donc des variables dans ces boucles. A part tout écrire en dur, je vois pas trop.. du coup ça fait pas très classe.. En tout cas merci à tous les deux d'avoir répondu
|
|
mardi 11 octobre 2005 à 09:27:05 |
Re : Comment passer un NOM de variable en paramètre

malalam
|
J'a rien compris...!
Mais alors, rien! Lol.
Ou alors je ne vois pas le problème...
Tu peux vien avoir un tableau comme propriété de ta classe, dans lequel
tu stockes tes valeurs, et boucler sur ce tableau. Un peu comme ton 2d
exemple.
Tu peux aussi utiliser des trucs façon func_num_args () pour récupérer
les arguments d'appels d'une méthode. Enfin chais pas, je suis un peu
dans le flou, perso, sur ton problème. Je ne l'ai vraiment pas
franchement saisi ;-)
|
|
mardi 11 octobre 2005 à 11:26:08 |
Re : Comment passer un NOM de variable en paramètre

FhX
|
class x {
public function __construct($champ, $table, $where) {
for ($i=0;$i<$periode;$i++){
$sql="SELECT $champ FROM $table WHERE $where"
$mysql -> execute($sql);
bla bla...;
}
}
}
Autrement, pour faire passer un nom de variable, il te faut faire un tableau :
$champ = 'monchamp';
$table = 'matable';
$year = '1990';
$array = ('champ','table','year');
echo $$array[0]; // Affichera : 'monchamp'
echo $$array[1]; // Affichera : 'matable'
echo $$array[2]; // Affichera : '1990'
Je vois pas mieux comment te décrire ca :)
|
|
mardi 11 octobre 2005 à 11:51:20 |
Re : Comment passer un NOM de variable en paramètre

malalam
|
Je ne vois pas l'intérêt, lol.
(je vois rarement l'intérêt des variables variables, de toutes façons ;-) je suis plutôt braqué contre lol).
|
|
mardi 11 octobre 2005 à 11:57:40 |
Re : Comment passer un NOM de variable en paramètre

tiris
|
ben oui mais non c'est peut-être pratique les variables dynamiques (tu m'as fait découvrir ça hier, merci), mais pas adaptées à mon cas.
ton $$array[2] , fonctionnera sur une itération de boucle, et ne bougera pas sur $periode, puisque c'est string.
MA CLASSE (trés simplifiée) class newStat{ private $tabEntete; private $tabIndice; private $tabDonnee; //constructeur public function newStat($tabRequetEntete,$tabRequetIndice,$tabRequetDonnee ){ $this -> constructTabEntete($RequetEntete); $this -> constructTabIndice($tabRequetIndice); $this -> constructTabDonnee($tabRequetDonnee); } public function constructTabDonnee(){ for ($t=0 ; $t < $periode ; $t++){ $sql = "SELECT ".$tabRequetDonnee[0]. "FROM ".$tabRequetDonnee[1]. "WHERE ".$tabRequetDonnee[2]; $mysql -> execute($sql); bla bla...; } }
EXEMPLE D'APPEL $tabRequetIndice[0] = "un string " ..... $tabRequetDonnee[0] = "mon champ"; $tabRequetDonnee[1] = "ma table"; $tabRequetDonnee[2] = "year = ".$annee; L'idée (idiote) première, était d'avoir une requête dynamique dans la classe. Pour être dynamique il faut impérativement que des NOMS de variables apparaissent pour y être intéprétées à chaque tour. Hors à l'appel, sur $tabRequetDonnee[2], $moisDepart sera automatiquement intéprété, et arrive string dans la classe. Ce que j'aurais voulu, c'était trouver un moyen de reconstituer des requêtes qui soient interprétées par php dans MA CLASSE comme dans les exemples de mon 2eme post.
Pour l'instant, j'utilise un switch case qui trie mes requêtes en dur.
|
|
mardi 11 octobre 2005 à 12:01:08 |
Re : Comment passer un NOM de variable en paramètre

tiris
|
oups constructTabDonnee prend $tabRequetDonnee en paramètre bien sur public function constructTabDonnee($tabRequetDonnee ){ }
|
|
mardi 11 octobre 2005 à 12:06:47 |
Re : Comment passer un NOM de variable en paramètre

malalam
|
Je ne comprends toujours pas lol.
Pourquoi tu n'utilises pas un tableau à plusieurs dimensions...??
$tab = array (
0 => array (
'champ' => 'bla',
'table' => 'bli',
'year' => '2778'
)
1 => array (
'champ' => 'blu',
'table' => 'blo',
'year' => '5987'
)
)
Et tu peux itérer sur les index, puis prendre le champ, la table, et l'année de cet index ?
|
|
Cette discussion est classée dans : variable, php, passer, paramètre, stage
Répondre à ce message
Sujets en rapport avec ce message
variable [ par chrys76 ]
CHRYSj'ai une variable dans une page.php $nb1=rand( 0, 1000 );et je voudrais la faire passer dans une autre page.php et dans une autre variable comme
php et flash hummm des variables [ par vbmarh ]
salut je dois avoir ds une page php un swf contenant un texte qui change a chaque rafraichissement . je voudrais passer cette variable "le texte s
passer une variable pour une image [ par ether01 ]
Bonjour!Je suis une débutante en PHP et j'ai une question:J'ai créé une page qui demande un long texte au user. Ensuite, je passe cette variable par u
passer une variable dans l'URL [ par xav91 ]
Bonjour,aprés quelques heures de recherche, je ne trouve pas de solution à mon problème.dans mon fichier tri.php, appelé par un include, j'ai :-------
Comment recevoir une nouvelle Variable php ? [ par djrz ]
Comment recevoir une nouvelle Variable php (chaque 2 secondes)(sans passer par un div) ? J'essai de m'expiquer : Dans une page en php, j'ai besoin d'
Comment recevoir une nouvelle Variable php (chaque 2 secondes)(sans passer par un div) ? [ par djrz ]
Comment recevoir une nouvelle Variable php (chaque 2 secondes)(sans passer par un div) ? J'essai de m'expiquer : Dans une page en php, j'ai besoin d
Fonction qui teste un code php [ par david11001 ]
Salut !Imaginons que j'ai un bout de code en php dans une variable $code.par exemple: $code = "echo 'blablabla';"J'aimerai savoir s'il existe une fonc
Peut-on changer un variable de code PHP suivant le URL? [ par shyrachtz ]
Bonjour [color=red]Peut-on [b]changer un variable [/b][u][/u][/color]de code [color=red][b]PHP[/b][u][/u][/color] [b]suivant le [color=red]URL[/color
recuperer une variable dans une page [ par bodioo ]
bodioo Bonjour à tous j'ai besoin de recuperer une variable dans une page auquel on accede par lien (ceci en php). cad que j'ai une variable sur une p
problème de redirection si passage de paramètre [ par geff33 ]
Bonjour, Voici mon problème que je n'arrive pas à solutionner: je veux faire une redirection dans une page située dans un répertoire du site vers ind
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|