我在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
您能建议吗?谢谢
答案 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
?>