隐藏输入中的php itertation循环不迭代
我在这个脚本中有一个烦人的小错误。我正在检查我的购物车项目,并将它们传递到隐藏的输入中。购物车id($obj->id)在值“”中运行良好,但我的迭代循环(为每个值指定一个唯一的名称=”(购物车id\u 1、购物车id\u 2等)没有迭代隐藏输入中的php itertation循环不迭代,php,iteration,hidden-field,Php,Iteration,Hidden Field,我在这个脚本中有一个烦人的小错误。我正在检查我的购物车项目,并将它们传递到隐藏的输入中。购物车id($obj->id)在值“”中运行良好,但我的迭代循环(为每个值指定一个唯一的名称=”(购物车id\u 1、购物车id\u 2等)没有迭代 <?php $pass_cart_q = "SELECT c.id FROM carts AS c WHERE c.user_session_id='$sid'"; $result = $my
<?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();?>
请替换$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++;
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 = 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 = 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
,并且它应该仅为$i++
您正在将递增的值赋值给$i
变量。因此它无法迭代。相反,您应该删除赋值变量$i
,它应该只为$i++
,增量运算符VAR++返回VAR的值,然后将VAR的值增加一。您只需按照建议使用VAR++或VAR=++VAR,即可获得已经增加的值。是的!有趣的是,$i=$i++
将右侧$i
的值分配给左侧$i
后,增量器不会对左侧$i
进行操作。当时显然有两个不同的引用用于同一个变量名。增量运算符VAR++返回VAR的值,然后将VAR的值增加一。您只需按照建议使用VAR++或VAR=++VAR,即可获得已经增加的值。是的!有趣的是,$i=$i++
将右侧$i
的值分配给左侧$i
后,增量器不会对左侧$i
进行操作。当时显然有两个不同的引用用于同一个变量名。为什么$i
仍将保持不变?为什么$i
仍将保持不变?我刚刚找到一个线程,该线程声明可以使用方括号将隐藏字段强制转换到数组中-name=“name[]”。。。我的操作假设我将覆盖这些值,但我会看看这是否有效。我刚刚找到一个线程,它表明可以使用方括号将隐藏字段强制转换为数组-name=“name[]”。。。我的操作假设我将覆盖这些值,但我会看看这是否有效。