如何在新变量名中使用变量?

时间:2012-09-26 18:54:18

标签: php

我正在使用while循环,我需要能够将变量的值赋给新变量的名称。这是循环($ slide_number总是返回一个数字):

$slide_number = theme_get_setting('slides_number');
$count = '1';

while ($count <= $slide_number) {
  $slide_path = theme_get_setting('slide_path_'.$count.'');
    if (file_uri_scheme($slide_path) == 'public') {
      $slide_path = file_uri_target($slide_path);
    }  
  $count++;  
}

所以让我们说$ slide_number是2.我需要生成$ slide_path_1和$ slide_path_2,那么如何将$ count变量添加到$ slide_path来创建$ slide_path_1和$ slide_path_2?

5 个答案:

答案 0 :(得分:2)

虽然我不建议变量变量,但应该这样做:

$slide_path = "slide_path_" . $slide_count;
echo $$slide_path;

答案 1 :(得分:2)

参考:

${'slide_path' . $count}

答案 2 :(得分:0)

$count=1;
$var1='$slide_path_'.$count;
$$var1="here you go";

这将按名称$slide_path_1创建一个变量,并将“此处转到”

分配给它

http://php.net/manual/en/language.variables.variable.php

答案 3 :(得分:0)

我很困惑。如果您只需要上一次循环运行的信息,请在循环结尾处保存一个包含该信息的变量。或者将所有这些加载到声明的数组中,然后在加载后用它做你想做的事。

答案 4 :(得分:0)

你要做的是非常糟糕的做法...... 使用数组来代替。查看数组如何工作,您可以将所有值一起附加到列表中,然后根据需要查看它们。请考虑以下事项:

$slide_number = theme_get_setting('slides_number');
$count = '1';
$array_of_slides = array();

while ($count <= $slide_number) {
   $slide_path = theme_get_setting('slide_path_'.$count.'');
   if (file_uri_scheme($slide_path) == 'public') {

     $slide_path = file_uri_target($slide_path);

     // this line appends your value to the end of the array
     $array_of_slides[] = file_uri_target($slide_path);
   }  
   $count++;  
}

// this will print out the array so that you can see it
var_dump($array_of_slides);

旁注:您正在尝试做的事情就是这样糟糕的做法是因为如果您有40亿个变量被声明,那么您的程序肯定会崩溃,并且可能会使您的操作系统崩溃。