PHP-开关var值自动增量在一段时间内意外工作

PHP-开关var值自动增量在一段时间内意外工作,php,html,while-loop,switch-statement,Php,Html,While Loop,Switch Statement,希望你能帮我做这个。。。所以基本上,我在一段时间内测试一个开关,它循环并比较值(一旦某个值达到$numRow的限制,While就会结束并停止执行其余代码) 我的代码如下: <?php $n = 0; $i = 0; $numRows = 4; while ($n <= $numRows){ switch($i++){ case 1: if($i == $numRows){ echo 'Case

希望你能帮我做这个。。。所以基本上,我在一段时间内测试一个开关,它循环并比较值(一旦某个值达到$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/>";   
            }
            break;
        case 5:
            if($i == $numRows){
                echo 'Case 5:La variable i ='.$i.' es igual a la cantidad de columnas n='.$n."<br/>";   
            } else {
                echo 'Case 5: La variable i ='.$i.' es diferente a la cantidad de columnas n='.$n."<br/>";   
            }
            break;
    }
    $n++;
    echo $n;
}
    
是否有任何拼写错误或是我的语法有问题?我学习PHP是一种爱好,所以想知道这里是否有新手的错误:)


提前谢谢

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

switch(++$i){
//...
}
发生的情况是,当您发布增量(
$i++
)时,变量不会立即获取新值。仅当再次使用变量时,它才接受新值。因此,当您在开关中增加时,
$i
仍然是
1
。然后在
案例:1
中,当您使用变量时,实际增量发生,它显示2而不是1

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

$++;
switch($i){
//...
}

请阅读更多信息。

如果您希望每个循环增加$i,最好

$i++
switch($i){
switch($i++){
更改为
switch($i){
$i++
switch($i){