if语句内的增量值未显示在else语句上

时间:2019-12-06 05:05:37

标签: php

我在PHP上有一个反向循环,我似乎无法获得在if语句中添加到else语句的值。

这是我的代码。

<?php
$r = 0;
$data = array("false","false","false","true");
for( $x = count($data)-1; $x >= 0; $x-- ) {
    if('false' === $data[$x]) {
    $r++;
    }
    else {
        echo $r;
    }
}
?>

output: 0
expected output: 3

我尝试使用普通循环来检查问题是否在变量的范围内,但是预期的输出是正确的。

<?php
$r = 0;
$data = array("false","false","false","true");
for( $x = 0; $x < count($data); $x++ ) {
    if('false' === $data[$x]) {
    $r++;  
    }
    else {
        echo $r;
    }
}
?>

output: 3
expected output: 3

您能建议吗?谢谢

1 个答案:

答案 0 :(得分:1)

这是因为您从最后一个索引开始开始循环,

循环的第一个值是true,因此它继续进行其他部分并显示0,之后始终进行if部分和$r++,但如果您在循环外打印$r,其值为3

<?php
    $r = 0;
    $data = array("false","false","false","true");
    for( $x = count($data)-1; $x >= 0; $x-- ) {
        if('false' === $data[$x]) {
            $r++;
        }
        else {
            echo $r; //first time print this because condition false
        }
   }
   echo $r; //its value 3 here

?>