循环不计

时间:2014-04-15 20:36:24

标签: php loops

我正在尝试使用以下代码添加有多少人可以退休而不是。代码显示但不添加。我做错了什么?

<?php
$canRetire= 0;
$notRetired = 0;

$agesFile = fopen("ages.txt", "r");
$nextAge = fgets($agesFile);
while (feof($agesFile) ){
   list($agesFile)=explode(":",$nextAge);
   if ($agesFile > 65){ 
       $canRetired = $canRetired + 1;
   }
   else{
       $notretired = $notRetired + 1;
   }
   $nextAge = fgets($agesFile);
}
fclose ($agesFile);

print("<p>Number of people can retired : $canRetired</p>");
print("<p>Number of people not retired: $notRetired</p>");
?>

2 个答案:

答案 0 :(得分:1)

不应该是while(!feof(...))吗?

您希望在到达文件末尾时停止。

另外,看起来你有一些拼写错误:

$notretired = $notRetired + 1;

注意右边的左边和右边的R是小写的。

同样在开头你有$canRetire并且在循环内的if条件中你有$canRetired

还有一点提示:$notRetired = $notRetired + 1;$notRetired++;相同

答案 1 :(得分:0)

对案例进行了一些修改,以及基于您定义的变量的类型。看起来变量$ canRetire与$ canretired不匹配。

使用while(feof($fh))基本上是说,为EOF执行此操作。这使得整个循环无用。使用while(!feof($fh))将允许您循环直到EOF。

<?php
$canRetired= 0;
$notRetired = 0;

$agesFile = fopen("ages.txt", "r");
$nextAge = fgets($agesFile);
while (!feof($agesFile) ){
   list($agesFile)=explode(":",$nextAge);
   if ($agesFile > 65){ 
       $canRetired = $canRetired++;
   }
   else{
       $notRetired = $notRetired++;
   }
   $nextAge = fgets($agesFile);
}
fclose ($agesFile);

print("<p>Number of people can retired : $canRetired</p>");
print("<p>Number of people not retired: $notRetired</p>");
?>