在for循环中增加变量名


Increment a variable name in for loop

所以我有一个变量,我想基于一些提交的表单数据设置。在表单上,我有一组字段,用户可以增加这些字段的数量(也就是说,他们可以添加更多相同类型的字段),因此我需要设置处理提交数据的脚本来适应这一点。

到目前为止,这是我所拥有的:

while ($i <= $totalproducts) {
       $product.$i = $_POST['product'.$i];
       $i++;
    }

$totalproducts保存字段的总数。例如,假设我有3个项目,下面是我想从代码中获取的内容:

$product1 = $_POST['product1'];
$product2 = $_POST['product2'];
$product3 = $_POST['product3'];

我相信我已经很接近了,只是不能把它们放在一起…

你可以使用变量variable:

while ($i <= $totalproducts) {
   $variable = 'product' . $i;
   $$variable = $_POST['product' . $i];
   $i++;
}

但更好的是使用array:

$products = array();
while ($i <= $totalproducts) {
   $products[$i] = $_POST['product' . $i];
   $i++;
}

你需要这样做

${$product.$i} = $_POST['product'.$i];

但是我觉得这是很糟糕的风格。为什么不用数组呢?这正是数组的作用。

数组也有很多优点。想知道有多少种产品吗?简单,只要count()。想把产品传递给另一个函数?很简单,只需传递数组而不是未知数量的变量,等等