我在这个脚本中有一个恼人的小错误。我正在浏览购物车中的商品,并将它们传递到隐藏的输入中。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++