2010-07-23 15 views
2

regard à ce script simple s'il vous plaîtphp obtenir le nom de la variable d'autre variable

$c1 = $_GET[c1]; 
$c2 = $_GET[c2]; 
$c3 = $_GET[c3]; 
$c4 = $_GET[c4]; 
$c5 = $_GET[c5]; 
for($i = 1;$i <=5;$i++) 
{ 
    echo $c{$i};//or something else here :/ 
} 

Comment imprimer THA valeurs des variables?

Merci

+2

Si vous définissez les variables, utilisez plutôt un tableau. Quelqu'un pourrait-il expliquer pourquoi tant de gens suggèrent des alternatives à un tableau plaine vieux? –

+0

duplication possible de [Puis-je utiliser un nom de variable généré en PHP?] (Http://stackoverflow.com/questions/130240/can-i-use-a-generated-variable-name-in-php) – outis

Répondre

4

Vous pouvez voir on php.net de bons exemples dans la page de variables. Lisez ça et jetez un oeil aux exemples.

En outre, au-dessous est votre morceau de code fixe afin qu'il puisse fonctionner:

<?php 

$c1 = $_GET[c1]; 
$c2 = $_GET[c2]; 
$c3 = $_GET[c3]; 
$c4 = $_GET[c4]; 
$c5 = $_GET[c5]; 
for($i = 1;$i <=5;$i++) 
{ 
    echo ${"c".$i}; 
} 
+2

Ce n'est pas une bonne chose à conseiller le gars à faire. C'est un cas où les tableaux sont la réponse la plus appropriée; pourquoi lui dire d'utiliser des variables variables? – Hammerite

+1

Il voulait des variables variables (probablement parce que dans '$ c1',' $ c2' etc vérifie le contenu de $ _GET S'il avait demandé d'autres solutions, je suggérerais d'autres, mais il me semble que cette question concerne ** variables variables **. –

+0

Cette réponse est plus correcte, mais recommander des tableaux est préférable.Dans ces cas, je pense que les meilleures réponses sont une fusion de la vôtre et @Kieren Johnstone: ils offrent la solution à la question à portée de main, mais Il est également important de dire que ce n'est vraiment pas une bonne pratique. – Matchu

0

Peut-être PHP variable variables est ce que vous recherchez.

$i = "c1"; 
print $$i; 

Je vous laisse le soin de comprendre comment construire des valeurs correctes pour 'i'.

+0

Puis-je utiliser demander pourquoi cela a été downvoted? – Gian

-2

Cela devrait fonctionner ..

foreach($_GET as $id => $value){ 
     echo $value; 
} 

même si cela imprime chaque _GET $.

3

Si ces valeurs sont étroitement liées, pensez à modifier leur attribut name dans votre formulaire HTML /.

HTML:

<form> 
    <input type="text" name="c[]" /> 
    <input type="text" name="c[]" /> 
    ... 
</form> 

PHP:

<?php 

    if(!empty($_GET['c'])) { 
     foreach($_GET['c'] as $c) { 
      echo $c; 
     } 
    } 

?> 
1

Voici une meilleure façon de le faire, en utilisant des tableaux, plutôt que des variables individuelles, qui fonctionne facilement et plus efficacement.

<?php 
$array['c1'] = $_GET['c1']; 
$array['c2'] = $_GET['c2']; 
$array['c3'] = $_GET['c3']; 
$array['c4'] = $_GET['c4']; 
$array['c5'] = $_GET['c5']; 
for ($i=1; $i>=5; $i++) { 
    echo $array['c' . $i]; 
} 
?>