2009-11-17 8 views
0

Comment se fait-il que lorsque j'écho $ p, la variable que Im essayant de récupérer en utilisant cette boucle ne s'affiche pas dans le chemin.de l'aide rapide avec ce petit morceau de code

$name_image2="picture.jpg"; 
for ($i=2; $i<=$nr_of_pics; $i++){ 
     $img='name_image'.$i; 

echo $$img; me donne ceci: 'picture.jpg' qui est correct. mais quand écho $ p comme ceci:

$p="/SV/main/temp_images/$$img"; echo $p; 

je reçois ceci: SV/main/temp_images/name_image2 -> la variable 'name_image2' ne marche pas s'appelle ici, pourquoi? Je veux dire: SV/main/temp_images/picture.jpg

Merci

Répondre

1

Essayez $p="/SV/main/temp_images/{${$img}}";

Lorsque PHP est l'analyse de la chaîne et vient à un $, il regarde le caractère suivant pour voir si elle fait un nom de variable valide . Sinon, ça continue. Dans ce cas, cela signifie que le second $ est correctement interprété, mais le premier a déjà été passé. La réponse consiste à entourer l'expression interne entre parenthèses, afin qu'elle soit analysée avant que l'expression externe ne le soit.

2
$p = "/SV/main/temp_images/" . $$img; 

À corriger.

En outre, je recommanderais d'apprendre à utiliser des tableaux. Ils constituent une bien meilleure façon d'avoir un ensemble de données plutôt que des variables variables.

Questions connexes