在 for 循环中设置乘法参数


Set multiply parameters in a for-loop

我是PHP的新手,我正在尝试将多个参数设置为相同的值。我已经以(可能)丑陋的方式做到了。

$thpic0 = "thpic_dummy";
$thpic1 = "thpic_dummy";
$thpic2 = "thpic_dummy";
$thpic3 = "thpic_dummy";
etc...
$thpic13 = "thpic_dummy";
$thpic14 = "thpic_dummy";

由于唯一的字符更改是我分配的参数中的最后一个字符,因此可以在 for 循环中完成,但这(显然)不起作用:

//Reset th sorting pics
for($i=0;$i<=14;$i++)
{
$thpic{$i} = "thpic_dummy";
}

有没有另一种方法可以在没有太多代码行的情况下做到这一点?

正确的语法是${…}而不是$…{…}

${"thpic$i"} = ...;

将是有效的语法。

关于此的进一步PHP手册讲座:http://php.net/language.variables.variable.php

最好的办法是把它放到这样的数组中:

for ($i = 0; $i <= 14; $i++) {
    $thpic[$i] = "thpic_dummy";
}
print_r($thpic);

这将返回如下内容:数组

(
    [0] => thpic_dummy
    [1] => thpic_dummy
    [2] => thpic_dummy
    [3] => thpic_dummy
    [4] => thpic_dummy
    [5] => thpic_dummy
    [6] => thpic_dummy
    [7] => thpic_dummy
    [8] => thpic_dummy
    [9] => thpic_dummy
    [10] => thpic_dummy
    [11] => thpic_dummy
    [12] => thpic_dummy
    [13] => thpic_dummy
    [14] => thpic_dummy
)

你可以这样称呼:

print $thpic[1]

您应该为此任务使用任何数组

$thpic = array();
for($i=0;$i<=14;$i++)
{
    $thpic[$i] = "thpic_dummy";
}
echo $thpic[1];

您可以使用变量变量来实现您想要的:

for($i=0;$i<=14;$i++)
{
    $variable  = 'thpic' . $i;
    $$variable = "thpic_dummy";
}

您可以在文档中阅读有关这些内容的更多信息:http://php.net/manual/en/language.variables.variable.php

或者,您可以使用语法:${"thpic" . $i} = "thpic_dummy";