我们可以使用下面的代码来测试它:
复制代码代码如下:< PHP
为
文件名=测试.txt;
如果(is_file($文件名)){
$文件名存在!;
{人}
$文件名不存在!;
}
睡眠(10);
如果(is_file($文件名)){
$文件名存在!;
{人}
$文件名不存在!;
}
>
运行测试代码时,我们保证下的test.txt文件存在。在上面的代码中,该is_file
函数用于判断文件是否存在的第一时间,然后睡眠
功能被称为睡眠10秒。在这10秒,我们要
删除下的test.txt文件。最后,看在第二呼叫结果的is_file功能。输出结果如下:
test.txt存在!
test.txt存在!
嗯,你没有看到
错误的东西。两时间是test.txt输出存在!那是为什么
原因是,is_file已缓存。当调用is_file功能的第一时间,PHP将
保存该文件的
属性(文件属性)。当is_file再次呼吁,如果文件名和第一次一样,它将返回缓存直接。
那么,改变is_file到file_exists我们可以改变上述代码中的file_exists is_file函数功能,再测试一下上面的测试
方法,结果如下:
test.txt存在!
test.txt不存在!
第二次时,file_exists调用,文件不存在。这是因为file_exists功能不缓存。当它调用file_exists,将
磁盘搜索文件存在。所以它会回到第二次错误。
这么多,我只想说,is_file不能代替file_exists。如果你认为is_file是好的,我做不到。