亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP中is_file不能替代file_exists的理由

 更新時(shí)間:2014年03月04日 11:20:30   作者:  
首先要提出的問(wèn)題是,is_file真的可以替代file_exists使用嗎?答案是否定的。為什么?原因很簡(jiǎn)單,is_file有緩存
我們可以使用下面的代碼測(cè)試一下:
復(fù)制代碼 代碼如下:
<?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";
      }
?>

在運(yùn)行測(cè)試代碼時(shí),我們確保test.txt文件存在。在上面的代碼中,第一次使用is_file函數(shù)判斷文件是否存在,然后調(diào)用sleep函數(shù)睡眠10秒。在這10秒內(nèi),我們要把test.txt文件刪除。最后看看第二次調(diào)用is_file函數(shù)的結(jié)果。輸出結(jié)果如下:
test.txt exists!
test.txt exists!
嗯,你沒(méi)有看錯(cuò),兩次都是輸出“test.txt exists!”,這是為什么呢?原因就是is_file有緩存。第一次調(diào)用is_file函數(shù)的時(shí)候,PHP會(huì)把文件的屬性(file stat)保存下來(lái),當(dāng)再次調(diào)用is_file的時(shí)候,如果文件名更第一次的一樣,那么就會(huì)直接返回緩存。
那么把is_file改為file_exists呢?我們可以把上面代碼的is_file函數(shù)改為file_exists函數(shù),再次使用上面的測(cè)試方法測(cè)試。結(jié)果如下:
test.txt exists!
test.txt no exists!
第二次調(diào)用file_exists的時(shí)候返回文件不存在,這是因?yàn)閒ile_exists函數(shù)沒(méi)有緩存,沒(méi)次調(diào)用file_exists的時(shí)候都會(huì)去磁盤搜索文件是否存在,所以第二次才會(huì)返回false。
說(shuō)了那么多,我只想說(shuō)明is_file不能代替file_exists使用,如果你硬是覺(jué)得is_file的性能好,那我也沒(méi)辦法

相關(guān)文章

  • php設(shè)計(jì)模式 Adapter(適配器模式)

    php設(shè)計(jì)模式 Adapter(適配器模式)

    將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,使用原本不兼容的而不能在一起工作的那些類可以在一起工作
    2011-06-06
  • PHP 文件上傳源碼分析(RFC1867)

    PHP 文件上傳源碼分析(RFC1867)

    文件上傳,一般分為倆種方式FTP和HTTP, 對(duì)于我們的互聯(lián)網(wǎng)應(yīng)用來(lái)說(shuō): FTP上傳雖然傳輸穩(wěn)定, 但是易用性和安全性都是個(gè)問(wèn)題.
    2009-10-10
  • PHP讀MYSQL中文亂碼的解決方法

    PHP讀MYSQL中文亂碼的解決方法

    PHP讀MYSQL中文亂碼的解決方法...
    2006-12-12
  • DedeCMS 核心類TypeLink.class.php摘要筆記

    DedeCMS 核心類TypeLink.class.php摘要筆記

    DedeCMS 核心類TypeLink.class.php摘要筆記,學(xué)習(xí)php就是借鑒與分析,讓自己的掌握的更多。
    2010-04-04
  • Yii中render和renderPartial的區(qū)別

    Yii中render和renderPartial的區(qū)別

    這篇文章主要介紹了Yii中render和renderPartial的區(qū)別,以下由我們?cè)谛乓拙W(wǎng)絡(luò)公司開(kāi)發(fā)項(xiàng)目的時(shí)候終結(jié)出的一些經(jīng)驗(yàn)
    2014-09-09
  • php實(shí)現(xiàn)三級(jí)級(jí)聯(lián)下拉框

    php實(shí)現(xiàn)三級(jí)級(jí)聯(lián)下拉框

    這篇文章主要介紹了php實(shí)現(xiàn)三級(jí)級(jí)聯(lián)下拉框,上網(wǎng)翻找了許多三級(jí)級(jí)聯(lián)下拉框?qū)崿F(xiàn)的資料,下面分享給大家
    2016-04-04
  • PHP仿tp實(shí)現(xiàn)mvc框架基本設(shè)計(jì)思路與實(shí)現(xiàn)方法分析

    PHP仿tp實(shí)現(xiàn)mvc框架基本設(shè)計(jì)思路與實(shí)現(xiàn)方法分析

    這篇文章主要介紹了PHP仿tp實(shí)現(xiàn)mvc框架基本設(shè)計(jì)思路與實(shí)現(xiàn)方法,簡(jiǎn)單講述了php實(shí)現(xiàn)tp框架的原理,并結(jié)合實(shí)例形式分析了相關(guān)控制器、視圖及URL訪問(wèn)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • php中用文本文件做數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法

    php中用文本文件做數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法

    相信大家在網(wǎng)上申請(qǐng)的免費(fèi)PHP空間,如果是初級(jí)用戶,一般都是沒(méi)得MySQL可供使用,那么我們解決數(shù)據(jù)處理的方法之一就是用文本文件了。但是用什么方法才可以最快最方便的處理文本數(shù)據(jù)呢?
    2008-03-03
  • PHP中單引號(hào)與雙引號(hào)的區(qū)別分析

    PHP中單引號(hào)與雙引號(hào)的區(qū)別分析

    在PHP中,我們可以使用單引號(hào)或者雙引號(hào)來(lái)表示字符串。不過(guò)我們作為開(kāi)發(fā)者,應(yīng)該了解其中的區(qū)別。單引號(hào)與雙引號(hào)對(duì)于定義字符一個(gè)是可以解析變量一個(gè)是會(huì)把變量直接輸出來(lái),同時(shí)單引號(hào)與雙引號(hào)在字符處理上單引號(hào)要優(yōu)與雙引號(hào)
    2014-08-08
  • php按字符無(wú)亂碼截取中文的方法

    php按字符無(wú)亂碼截取中文的方法

    這篇文章主要介紹了php按字符無(wú)亂碼截取中文的方法,涉及php操作中英文字符串的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03

最新評(píng)論