Variables varaibles et Array : compatible ? - PHP - Programmation
Marsh Posté le 17-03-2008 à 14:30:56
echo ${'var_tab'}['img'.$var];
${'var_tab'} est ta variable dans laquelle tu vas chercher l'élément "numéro" ['img'.$var]
Marsh Posté le 17-03-2008 à 14:41:43
art_dupond a écrit : echo ${'var_tab'}['img'.$var]; |
Pourquoi les accolades ?
Je pense (pas testé) que ça devrait suffire :
Code : |
Marsh Posté le 17-03-2008 à 14:44:41
Shinigami Delroen a écrit : Bonjour,
Ce code source affiche "1". |
Je n'ai rencontré qu'une raison valable d'utiliser un jour cette immonde syntaxe qui rend le code illisible, et c'était à cause des limitations de php...tu es sûr que tu ne peux pas utiliser un simple tableau pour faire ce que tu fais?
Marsh Posté le 17-03-2008 à 14:46:04
skeye a écrit : |
T'as réussi à en trouver une ?
Bravo !
Marsh Posté le 17-03-2008 à 14:48:03
kao98 a écrit :
|
oui, en essayant de wrapper la couche oci8 dans des classes maison. Sinon j'avais des problèmes de passages par référence des variables bindées pour récupérer le résultat de la clause returning (si mes souvenirs sont bons).
Marsh Posté le 17-03-2008 à 14:50:09
kao98 a écrit :
|
oui, j'ai juste modifié son code sans réfléchier
skeye, tu pourrais donner "la raison valable"
edit: oups
Marsh Posté le 17-03-2008 à 19:53:51
Pour ma part, la raison valable, c'est que j'ai un form avec 5 fichiers img1 à 5, donc ça me permet de boucler sur le tableau $_FILE (y'a peut-etre des fonctions mieux foutues pour le parcours de tableau ceci dit...)
EDIT : Je vais étudier le array_map, mais sinon la syntaxe $var_tab['img' . $var] fonctionne.
Merci beaucoup !
Marsh Posté le 17-03-2008 à 20:57:23
skeye a écrit : Je n'ai rencontré qu'une raison valable d'utiliser un jour cette immonde syntaxe qui rend le code illisible, et c'était à cause des limitations de php... |
kao98 a écrit : |
Les gars, mais les gars, quoi !
Code :
|
Marsh Posté le 17-03-2008 à 21:39:14
CyberDenix a écrit : Les gars, mais les gars, quoi ! |
ok, lol.
Le jour où ton getter doit retourner autre chose que la valeur exacte d'un membre il se passe quoi?
Le jour où ton setter doit vérifier la valeur passée il se passe quoi?
Marsh Posté le 17-03-2008 à 22:09:09
C'est normal si je comprends plus rien à ce que les gens répondent dans ce topic ?
(je savais meme pas qu'on pouvait faire de l'objet en PHP...)
Citation : oui sauf que pour ta bonne raison, tu n'emploies plus le truc moche |
Ah oui, très juste, j'avais pas pensé à ça ^^
Après avoir regardé array_map, ça fait pas vraiment ce que je veux (comme son nom l'indique, c'est une fonction de mapage, donc si elle agit sur un tableau, elle renvoie un tableau.)
Pour le "foreach", merci, mais finalement ce n'est pas nécessaire, vue la simplicité de la syntaxe retenue (je la garde quand meme sous le coin du coude, au cas où !)
Marsh Posté le 18-03-2008 à 09:52:46
Shinigami Delroen a écrit : C'est normal si je comprends plus rien à ce que les gens répondent dans ce topic ?
|
Tu peux aussi éventuellement passer tes images dans un tableau directement dans $_FILES, non? Il se passe quoi si tu nommes tous tes input type=file montableau[]? J'ai jamais essayé, mais c'est à regarder, pour faire encore un peu plus propre...
Marsh Posté le 17-03-2008 à 13:53:55
Bonjour,
Je recontre un petit problème avec des variables variables... Je pourrais me lancer dans de longues explications, mais je pense que le code source (commenté) est plus explicite.
Ce que j'appelle "variable variable" (reprenant ainsi la terminologie du Site du Zéro) est la construction suivante :
$test = 1;
$string = 'test' ;
echo ${$string} ;
Ce code source affiche "1".
Cette construction fonctionne également dans le cas suivant :
$shinigami_test = 1 ;
$string = 'test' ;
echo${'shinigami_' . $string} ;
Pour ma part, je cherche à combiner cela avec un array, de la façon suivante :
$var_tab['img1'] = 10 ;
$var = 1;
echo ${'var_tab[\'img' . $var . '\']'} ;
Cela devrait afficher 10, mais ça n'affiche rien.
J'ai également testé le passage par une variable intermédiaire :
$var_tab['img1'] = 10 ;
$var1 = 1 ;
$string = 'var_tab[\'' . $var . '\']' ;
echo $string ; // Pour test. Affiche var_tab['img1'].
$echo ${$string} ;
Mais le résultat est aussi peu probant.
Est-ce que par hasard l'un d'entre vous saurait comment résoudre ou contourner le problème ?
Merci beaucoup !