require() VS require_once() – 馬永占 譯

來源:互聯網
上載者:User

著作權聲明:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本聲明。否則將追究法律責任。http://blog.csdn.net/mayongzhan - 馬永占,myz,mayongzhan

require() VS require_once()
 
剛發現require_once()比require()慢,以前我的項目全是使用的require_once(),鬱悶...
> 最好直接使用include或者require,
> 因為*_once()在一個opcode緩衝下的調用非常慢.
> #_once()需要額外的去查看系統是否已經調用過這個檔案.
 
譯者注:
5.2.X對require_once()和include_once()進行了最佳化,所以不用擔心這個問題了.
 
摘一段文章如下:
PHP 5.2 以前 require_once()  和 include_once() 的做法是無論某個檔案是否已經被緩衝或編譯過,統統是先 fopen() 再說,開啟成功後在查詢一下是否已經緩衝過。這麼處理的原因就是 在 PHP 5.1 以前沒有很完美的解決 realpath() 相對路徑和符號串連方面的問題。因為若不能唯一地正確地確定某個路徑的真實路徑表示那麼你就無法利用這個路徑的唯一性去解決某個問題。而 fopen 則沒有這個顧慮。realpath() 的這個問題在 PHP 5.1 中被徹底搞定了,但還沒來得及應用到 require_once()  和 include_once() ,結果就拖遲到現在。解決這個問題的好處是在於避免了 fopen 這個 I/O 操作,在很多高負載情形中,通常都是 資料庫、網路或者磁碟 I/O 而不是 CPU 成為瓶頸。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.