is_file 判断文件是否存在并且检查指定的文件名是否是正常的文件;
file_exists 判断文件是否存在或者是目录是否存在;
is_dir 判断目录是否存在;
查看手册,虽然这两个函数的结果都会被缓存,但是is_file却快了N倍。
还有一个值得注意的:
文件存在的情况下,is_file比file_exists要快N倍;
文件不存在的情况下,is_file比file_exists要慢;
结论是,file_exits函数并不会因为该文件是否真的存在而影响速度,但是is_file影响就大了。
首先要提出的问题是,is_file真的可以替代file_exists使用吗?答案是否定的。为什么?原因很简单,is_file有缓存
我们可以使用下面的代码测试一下:
复制代码代码如下:
$filename = 'test.txt';
if (is_file($filename)) {
echo "$filename exists!\n";
} else {
echo "$filename no exists!\n";
}
sleep(10);
if (is_file($filename)) {
echo "$filename exists!\n";
} else {
echo "$filename no exists!\n";
}
?>
以上就介绍了 PHP中is_file,file_exists的区别,is_file 不能替代file_exits的理由,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。