Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
隐藏输入中的php itertation循环不迭代_Php_Iteration_Hidden Field - Fatal编程技术网

隐藏输入中的php itertation循环不迭代

隐藏输入中的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

我在这个脚本中有一个烦人的小错误。我正在检查我的购物车项目,并将它们传递到隐藏的输入中。购物车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 = $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[]”。。。我的操作假设我将覆盖这些值,但我会看看这是否有效。