隐藏输入中的PHP迭代循环不迭代


php itertation loop in hidden input not iterating

我在这个脚本中有一个恼人的小错误。我正在浏览购物车中的商品,并将它们传递到隐藏的输入中。cart_id ($obj->id)在value="中工作得很好,但是我的迭代循环给每个值一个唯一的名字=" (cart_id_1, cart_id_2等)没有迭代。

<?php         
           $pass_cart_q = "SELECT c.id FROM carts AS c WHERE c.user_session_id='$sid'";
           $result = $mysqli->query($pass_cart_q);
                    $i = 1; 
                while ($obj = $result->fetch_object()) {
                    echo "<input type='"hidden'" name='"cart_id_".$i."'" value='"  .$obj->id.  '"><br>";  
                    $i = $i++;
                }
                mysqli_close();?>

每个名称字段都以cart_id_1

的形式出现
$i=$i++;

这就是问题所在:

 $i++

请将$i = $i++;替换为$i++

$i = 1;
$i = $i++;
echo $i, "'n"; // 1
$i = 1;
$i = ++$i;
echo $i, "'n"; // 2
$i = 1;
$i++;
echo $i, "'n"; // 2
$i = 1;
++$i;
echo $i, "'n"; // 2

$i = $i++会导致什么?字面上是这样的:"使$i等于$i,然后增加1",但$i仍然保持不变。要解决这个问题,只需将$i = $i++;替换为$i++

<标题>

您正在将增量值分配给$i变量。因此它不能迭代。相反,你应该删除分配变量$i,它应该只有$i++