File_exists()在应该返回true的情况下返回false,这可能是导致这种情况的原因


File_exists() is returning false when it should return true, what can be causing this?

我编辑了整个问题以更好地表示答案。

我有一个for循环,可以访问和编辑图像文件。在循环中,进行了file_exists()检查。如果图像文件不存在,则会创建一个空白文件。

发生的情况是,即使在创建了文件之后,file_exists()也会继续返回false并创建新的空白文件(覆盖以前的操作)。

之所以会发生这种情况,是因为file_exists()和其他一些文件函数会缓存结果。为了防止这种情况发生,请使用clearstatcache();在使用这些函数之前,如果您希望结果已经更改并且正在检查同一个文件!

经过进一步的调查,我发现了一些图像消失的原因:函数file_exists()缓存了结果。

当多次循环浏览相同的文件时,如果不存在要启动的文件,则file_exists()将返回false,并创建一个空白文件。

如果再次使用同一个文件,并且缓存了结果"false",则前一个图像将被销毁,并使用新的空白文件。

为了防止这种情况,我插入了clearstatcache();在循环开始时。这解决了我的问题!

我正在更改问题标题以更好地代表这种情况。