PHP: 我如何正确评估循环中的嵌套变量变量?
PHP: how do i properly evaluate a nested variable variable in a loop?
好的。这是基础知识:
for ($k=1;$k<3;$k++) {
${'var'.$k} = 'foo';
} // so far so good
for ($j=1;$J<3;$j++) {
$dbq .= "stuff {$var{$k}} ";
} // problem here ^^ ^^
我正在寻找 $dbq
来渲染到“stuff foo stuff foo
”。但我不知道该怎么做。我可以在循环中设置变量没问题,但我不知道如何在循环中正确地评估它。 PHP 当我尝试这个时爆炸。我需要变量变量的值。而且它甚至不是真正的 "variable variable" 因为没有真正的引用正在进行;不是想误导,我只是不知道还能怎么称呼它...
如果有更好的方法,请务必赐教! :P
TIA。 WR!
你的输出循环中的语法不太正确,它与赋值循环基本相同。并且您确实需要使用与循环变量相同的名称(j
,而不是k
):
$dbq = '';
for ($j=1;$j<3;$j++) {
$dbq .= "stuff ${"var$j"} ";
}
echo $dbq;
输出:
stuff foo stuff foo
最终,虽然最好的解决方案是一个数组:
for ($k=1;$k<3;$k++) {
$var[$k] = 'foo';
} // so far so good
$dbq = '';
for ($j=1;$j<3;$j++) {
$dbq .= "stuff {$var[$j]} ";
}
echo $dbq;
2 个问题:-
for ($j=1; $j<3; $j++) { //capital J needs to be small j
并像下面这样更改连接代码:
$dbq .= "stuff ${'var'.$j} "
最好的方法是使用数组:
<?php
$var=[];
for ($k=1;$k<3;$k++) {
$var[$k] = 'foo';
}
$dbq = ''; //define variable first
for ($j=1;$j<3;$j++) {
$dbq .= "stuff $var[$j] "; //check syntax change
}
echo $dbq;
更简单的方法:
<?php
$var= array_fill(1,2,'foo');
$dbq = '';
foreach($var as $v){
$dbq .= "stuff $v ";
}
echo $dbq;
好的。这是基础知识:
for ($k=1;$k<3;$k++) {
${'var'.$k} = 'foo';
} // so far so good
for ($j=1;$J<3;$j++) {
$dbq .= "stuff {$var{$k}} ";
} // problem here ^^ ^^
我正在寻找 $dbq
来渲染到“stuff foo stuff foo
”。但我不知道该怎么做。我可以在循环中设置变量没问题,但我不知道如何在循环中正确地评估它。 PHP 当我尝试这个时爆炸。我需要变量变量的值。而且它甚至不是真正的 "variable variable" 因为没有真正的引用正在进行;不是想误导,我只是不知道还能怎么称呼它...
如果有更好的方法,请务必赐教! :P
TIA。 WR!
你的输出循环中的语法不太正确,它与赋值循环基本相同。并且您确实需要使用与循环变量相同的名称(j
,而不是k
):
$dbq = '';
for ($j=1;$j<3;$j++) {
$dbq .= "stuff ${"var$j"} ";
}
echo $dbq;
输出:
stuff foo stuff foo
最终,虽然最好的解决方案是一个数组:
for ($k=1;$k<3;$k++) {
$var[$k] = 'foo';
} // so far so good
$dbq = '';
for ($j=1;$j<3;$j++) {
$dbq .= "stuff {$var[$j]} ";
}
echo $dbq;
2 个问题:-
for ($j=1; $j<3; $j++) { //capital J needs to be small j
并像下面这样更改连接代码:
$dbq .= "stuff ${'var'.$j} "
最好的方法是使用数组:
<?php
$var=[];
for ($k=1;$k<3;$k++) {
$var[$k] = 'foo';
}
$dbq = ''; //define variable first
for ($j=1;$j<3;$j++) {
$dbq .= "stuff $var[$j] "; //check syntax change
}
echo $dbq;
更简单的方法:
<?php
$var= array_fill(1,2,'foo');
$dbq = '';
foreach($var as $v){
$dbq .= "stuff $v ";
}
echo $dbq;