php for loop variable names

2019-02-24 19:57发布

i got a code of 100-200 rules for making a table. but the whole time is happening the same. i got a variable $xm3, then i make a column . next row, i got $xm2 and make column. next row, i got $xm1 and make column.

so my variables are going to $xm3, $xm2, $xm1, $xm0, $xp1, $xp2, $xp3.

is there a way to make a forloop so i can fill $xm and after that a value from the for loop?

5条回答
闹够了就滚
2楼-- · 2019-02-24 20:25

As far as I am aware using different variable names is not possible.

However if you uses arrays so as below

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

or just $xm[] = "";

Then you can use a for each loop:

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

Edit: Just Googled and this is possible using variable names but is considered poor practice. Learn and use arrays!

查看更多
成全新的幸福
3楼-- · 2019-02-24 20:32

You can do this using variable variables, but usually you're better off doing this sort of thing in an array instead.

If you're positive you want to do it this way, and if 'y' is the value of your counter in the for loop:

${'xm' . $y} = $someValue;
查看更多
爷的心禁止访问
4楼-- · 2019-02-24 20:47

You can easily do something like this:

$base_variable = 'xm';

and then you can make a loop creating on the fly the variables; for example:

for ($i=0; $i<10; $i++)
{
  $def_variable = $base_variable . $i;
  $$def_variable = 'value'; //this is equivalent to $xm0 = 'value'
}
查看更多
看我几分像从前
5楼-- · 2019-02-24 20:50

It is not fully clear what you are asking, but you can do

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

in PHP, so you can loop through variables with similar names. (Which does not mean you should. Using an array is usually a superior alternative.)

查看更多
Explosion°爆炸
6楼-- · 2019-02-24 20:51

In this kind of structure you'd be better off using an array for these kinds of values, but if you want to make a loop to go through them:

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

}
查看更多
登录 后发表回答