PHP懂得之二:include,include_once,require,require_once之間的區別【轉】

來源:互聯網
上載者:User
PHP理解之二:include,include_once,require,require_once之間的區別【轉】

轉自:http://registerboy.pixnet.net/blog/post/2426163

?

require() is identical to include() except upon failure it will produce a fatal E_ERROR level error. In other words, it will halt the script whereas include() only emits a warning (E_WARNING) which allows the script to continue


這幾個的區別呢 經常會聽到有人討論,連一些PHPER面試都會出這個題目,我淺顯的說一下我的意見

先看手冊怎麼說的:

?

require&include
include()語句包含並運行指定檔案。以下文檔也適用於require()。這兩種結構除了在如何處理失敗之外完全一樣。include()產生一個警告而require()則導致一個致命錯誤。換句話說,如果想在遇到遺失檔案時停止處理頁面就用require()。include()就不是這樣,腳本會繼續運行。同時也要確認設置了合適的include_path。注意在 PHP 4.3.5 之前,包含檔案中的語法錯誤不會導致程式停止,但從此版本之後會。


include_once
include_once()語句在腳本執行期間包含並運行指定檔案。此行為和include()語句類似,唯一區別是如果該檔案中的代碼已經被包含了,則不會再次包含。如同此語句名字暗示的那樣,只會包含一次。include_once()應該用於在腳本執行期間同一個檔案有可能被包含超過一次的情況下,想確保它只被包含一次以避免函數重定義,變量重新賦值等問題。


require_once
require_once()語句在腳本執行期間包含並運行指定檔案。此行為和require()語句類似,唯一區別是如果該檔案中的代碼已經被包含了,則不會再次包含。有關此語句怎樣工作參閱require()的文檔。require_once()應該用於在腳本執行期間同一個檔案有可能被包含超過一次的情況下,想確保它只被包含一次以避免函數重定義,變量重新賦值等問題。



個人使用經驗:

1.路徑問題。

特別是嵌套包含的時候,一定的注意包含檔案的路徑。比如 A檔案包含了B檔案,B檔案包含了C檔案,A,B,C檔案都不在同一個檔案夾下,這個時候往往很容易出錯誤。
解決方案:定義一個基路徑sitebase

2.效率問題
include_once,require_once,與include,require比較,效率要低一點,因為他們至少得先判斷一下這個檔案是否存在。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.