好。这是基本知识:
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爆炸。我需要变量变量的值。它甚至不是真正的“变量”,因为没有真正的引用。不要试图误导,我只是不知道该怎么称呼...
并且如果有更好的方法可以做到这一点,那么请一定启发我! :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;