небольшая помощь с этим небольшим фрагментом кода - PullRequest
0 голосов
/ 18 ноября 2009

Почему при выводе $ p переменная, которую я пытаюсь получить с помощью этого цикла, не отображается в пути.

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

echo $$img; дает мне это: 'picture.jpg', что правильно. но при выводе $ p, например:

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

Я получаю это: SV/main/temp_images/name_image2 -> здесь не вызывается переменная name_image2, почему? Я хочу это сказать: SV/main/temp_images/picture.jpg

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 ноября 2009
$p = "/SV/main/temp_images/" . $$img;

Нужно это исправить.

Кроме того, я бы порекомендовал научиться использовать массивы. Это гораздо лучший способ иметь набор данных вместо переменных переменных.

1 голос
/ 18 ноября 2009

Попробуйте $p="/SV/main/temp_images/{${$img}}";

Когда PHP анализирует строку и приходит к $, он смотрит на следующий символ, чтобы увидеть, делает ли он допустимое имя переменной. Если нет, он движется дальше. В этом случае это означает, что второй $ правильно интерпретирован, но первый уже пройден. Ответ заключается в том, чтобы заключить внутреннее выражение в скобки, чтобы оно было проанализировано до того, как внешнее будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...