为了账号安全,请及时绑定邮箱和手机立即绑定

PHP - 切换变量值自动增量在一段时间内意外工作

PHP - 切换变量值自动增量在一段时间内意外工作

PHP
萧十郎 2023-11-05 15:47:38
希望你能帮助我解决这个问题...所以基本上,我正在一个 While 内测试一个开关,它循环并比较值(一旦某个值达到限制 $numRow,while 结束并停止执行其余代码) 。我的代码如下:    <?php$n = 0;$i = 0;$numRows = 4;while ($n <= $numRows){    switch($i++){        case 1:            if($i == $numRows){                echo 'Case 1:La variable i ='.$i.' es igual a la cantidad de columnas n='.$n."<br/>";                             } else {                echo 'Case 1: La variable i ='.$i.' es diferente a la cantidad de columnas n='.$n."<br/>";               }            break;        case 2:            if($i == $numRows){                echo 'Case 2:La variable i ='.$i.' es igual a la cantidad de columnas n='.$n."<br/>";               } else {                echo 'Case 2:La variable i ='.$i.' es diferente a la cantidad de columnas n='.$n."<br/>";               }            break;        case 3:            if($i == $numRows){                echo 'Case 3:La variable i ='.$i.' es igual a la cantidad de columnas n='.$n."<br/>";               } else {                echo 'Case 3:La variable i ='.$i.' es diferente a la cantidad de columnas n='.$n."<br/>";               }            break;        case 4:            if($i == $numRows){                echo 'Case4:La variable i ='.$i.' es igual a la cantidad de columnas n='.$n."<br/>";               } else {                echo 'Case 4:La variable i ='.$i.' es diferente a la cantidad de columnas n='.$n."<br/>";               }   我觉得奇怪的是代码的输出。变量 $I 应该从 1 开始,但在情况 1 中它的值为 2...这可能吗?代码中没有其他操作对变量求和 +1...输出:1Case 1: La variable i =2 es diferente a la cantidad de columnas n=12Case 2:La variable i =3 es diferente a la cantidad de columnas n=23Case 3:La variable i =4 es igual a la cantidad de columnas n=34Case 4:La variable i =5 es diferente a la cantidad de columnas n=45是否有任何拼写错误或我在语法上做错了什么?我正在学习 PHP 作为一种爱好,所以想了解这里是否有任何新手错误:)
查看完整描述

2 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

使用预增量:++$i而不是$i++:


switch(++$i){

//...

}

发生的情况是,当您进行后增量 ( $i++) 时,变量不会立即采用新值。仅当您再次使用该变量时,它才会采用新值。所以当你在开关上增量时$i仍然是1。然后在 中case: 1,当您使用该变量时,会发生实际的增量,并且显示 2 而不是 1。


这与执行以下操作完全相同:


$++;

switch($i){

//...

}



查看完整回答
反对 回复 2023-11-05
?
万千封印

TA贡献1891条经验 获得超3个赞

如果你想在每个循环中增加 $i ,最好

$i++
switch($i){


查看完整回答
反对 回复 2023-11-05
  • 2 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信