我正在尝试使用以下代码添加有多少人可以退休而不是。代码显示但不添加。我做错了什么?
<?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>");
?>
答案 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>");
?>