php is file 不起作用,PHP中is_file不能替代file_exists的理由

PHP中is_file不能替代file_exists的理由

发表于2019-05-21 11:28|

次阅读|

来源网络整理|

作者session

摘要:PHP中is_file不能替代file_exists的理由

PHP中is_file不能替代file_exists的理由

首先要提出的成绩是,is_file真的可能替代file_exists利用吗?答案能否定的。为什么?缘由很简略,is_file有缓存

咱们可能利用下面的代码测试一下:

代码如下:<?php

$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";

}

?>

在运转测试代码时,咱们确保test.txt文件存在。在上面的代码中,第一次利用is_file函数判别文件能否存在,然后调用sleep函数睡眠10秒。在这10秒内,咱们要把test.txt文件删除。最后看看第二次调用is_file函数的后果。输出后果如下:

test.txt exists!

test.txt exists!

嗯,你没有看错,两次都是输出“test.txt exists!”,这是为什么呢?缘由就是is_file有缓存。第一次调用is_file函数的时分,PHP会把文件的属性(file stat)保存上去,当再次调用is_file的时分,假设文件名更第一次的一样,那么就会间接前往缓存。

那么把is_file改为file_exists呢?咱们可能把上面代码的is_file函数改为file_exists函数,再次利用上面的测试方法测试。后果如下:

test.txt exists!

test.txt no exists!

第二次调用file_exists的时分前往文件不存在,这是由于file_exists函数没有缓存,没次调用file_exists的时分都会去磁盘搜查文件能否存在,所以第二次才会前往false。

说了那么多,我只想阐明is_file不能代替file_exists利用,假设你硬是觉得is_file的功能好,那我也没办法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值