重新分类php的feof()工作方式

重新分类php的feof()工作方式,php,feof,Php,Feof,我读过,也读过 所以我明白了,使用feof()并不意味着使用“水晶球”神奇地知道流中是否有更多的字符或行,如上面第二个链接所述。相反,它是指示输入操作是否失败的测试(在本例中,我只关心PHP的fgetc())。所以最后一个读到的字符还是可以的然后,的feof(),而(!feof($file\u you\u read\u from))仍然是false,这仅仅是因为最后一个fgetc()在fgetc()尝试读取并失败的循环之后,feof()仍然成功设置为true。我说得对吗?我误解了什么吗?feof

我读过,也读过


所以我明白了,使用feof()并不意味着使用“水晶球”神奇地知道流中是否有更多的字符或行,如上面第二个链接所述。相反,它是指示输入操作是否失败的测试(在本例中,我只关心PHP的
fgetc()
)。所以最后一个读到的字符还是可以的然后
feof()
,而(!feof($file\u you\u read\u from))
仍然是false,这仅仅是因为最后一个
fgetc()
fgetc()
尝试读取并失败的循环之后,
feof()仍然成功
设置为true。我说得对吗?我误解了什么吗?

feof
在PHP中的工作原理与C相同

如果为
false
,则检查最后一个操作,否则返回缓存值

检查与流关联的文件结束指示符是否正确 设置,返回一个不同于零的值(如果是)

此指示器通常由流上的前一个操作设置 试图在文件结尾处或之后读取的

请注意,流的内部位置指示器可能指向 下一个操作的文件结束,但仍然是文件结束 在操作尝试读取该点之前,不得设置指示器 重点

通过调用clearerr、rewind、fseek清除此指示器, fsetpos或freopen。尽管如果位置指示灯不亮 通过这样一个调用重新定位,下一个i/o操作可能会被设置 再次按下指示灯


我懂了。所以我的假设是正确的:
feof()
的值是由read的最新操作设置的,即我提到的
fgetc()
,对吗?有点错误,它受最新操作的影响,但由
feof
设置,您可以检查源代码。您的意思是:?诚然,我在理解该部分时遇到了一些困难。这意味着,它是由
feof()
设置的,并且
feof()
通过获取读取的最后一个操作的状态来知道要设置哪个值,对吗?