begin process at 2012 05 28 19:14:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Comment passer un NOM de variable en paramètre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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 ?


1 2

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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales