php для имен переменных цикла - PullRequest
3 голосов
/ 27 мая 2010

Я получил код 100-200 правил для составления таблицы. но все время происходит одно и то же. я получил переменную $ xm3, затем я делаю столбец. Следующая строка, я получил $ xm2 и сделать столбец. В следующей строке я получил $ xm1 и сделал столбец.

поэтому мои переменные будут равны $ xm3, $ xm2, $ xm1, $ xm0, $ xp1, $ xp2, $ xp3.

есть ли способ сделать forloop, чтобы я мог заполнить $ xm и после этого значение из цикла for?

Ответы [ 5 ]

3 голосов
/ 27 мая 2010

В такой структуре вам лучше использовать массив для таких значений, но если вы хотите создать цикл для их просмотра:

for($i = 0; $i <= 3; $i++) {
    $var = 'xm' . $i
    $$var; //make column stuff, first time this will be xm0, then xm1, etc.

}
2 голосов
/ 27 мая 2010

Не совсем понятно, о чем вы спрашиваете, но вы можете сделать

$xm = 'xm3';
$$xm // same as $xm3

в PHP, так что вы можете перебирать переменные с похожими именами. (Что не означает, что вы должны это делать. Использование массива обычно является лучшей альтернативой.)

1 голос
/ 27 мая 2010

Насколько мне известно, использование разных имен переменных невозможно.

Однако, если вы используете массивы, как показано ниже

$xm[3] = "";
$xm[2] = "";
$xm[1] = "";
$xm[0] = "";

или просто $xm[] = "";

Тогда вы можете использовать для каждого цикла:

foreach($xm as $v) { echo $v; }

Редактировать: Просто Google, и это возможно, используя имена переменных, но считается плохой практикой. Изучайте и используйте массивы!

0 голосов
/ 27 мая 2010

Вы можете легко сделать что-то вроде этого:

$base_variable = 'xm';

и тогда вы можете сделать цикл, создающий переменные на лету; например:

for ($i=0; $i<10; $i++)
{
  $def_variable = $base_variable . $i;
  $$def_variable = 'value'; //this is equivalent to $xm0 = 'value'
}
0 голосов
/ 27 мая 2010

Вы можете сделать это, используя переменные переменные, но обычно вам лучше делать такие вещи в массиве.

Если вы уверены, что хотите сделать это таким образом, и если 'y' - это значение вашего счетчика в цикле for:

${'xm' . $y} = $someValue;
...