0

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を作成するにはどうすればよいですか?

4

5 に答える 5

2

私は変数変数を推奨していませんが、これはそれを行う必要があります:

$slide_path = "slide_path_" . $slide_count;
echo $$slide_path;
于 2012-09-26T18:56:27.543 に答える
2

参照先:

${'slide_path' . $count}
于 2012-09-26T18:57:06.193 に答える
0
$count=1;
$var1='$slide_path_'.$count;
$$var1="here you go";

これにより、名前で変数が作成され、$slide_path_1それに「hereyougo」が割り当てられます。

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

于 2012-09-26T18:57:13.190 に答える
0

よくわかりません。ループの前回の実行からの情報だけが必要な場合は、ループの最後にその情報を保持する変数を用意します。または、これらすべてを宣言された配列にロードし、ロード後に必要な処理を実行します。

于 2012-09-26T18:58:22.970 に答える
0

あなたがやろうとしていることは本当に悪い習慣です...代わりにこれを行うために配列を使用してください。配列がどのように機能するかを調べてください。すべての値を1つのリストにまとめて追加すると、必要に応じてそれらを表示できます。次のことを考慮してください。

$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億の変数が宣言されている場合、プログラムは確実にクラッシュし、OSがダウンする可能性があるためです。

于 2012-09-26T19:03:00.317 に答える