淺談 PHP include 與 require 以及加上 _once 的差異

在 PHP 引入其它檔案,就會使用到 include、require 或是 include_once 以及 require_once。究竟這四個有什麼樣的差別,今天就來筆記一下這個部分。

include

使用 include 載入檔案時,如果發生找不到檔案的情況,會觸發 Warning 錯誤,基本上 Warning 類型的警告不會使程式碼中斷不往下執行,這部分可參考 Octave 錯誤與警告(Errors and Warnings) 這篇文章,找時間我也來筆記一下這部分知識點 XD

不過我自己測試的時候,如果是像某一支檔案有一行沒加 ; 分號而導致的錯誤,就會出現 Error 的錯誤而不會往下繼續執行程式。

require

require 與 include 不同地方在於,PHP 會在 require 引入後重新編譯,而將被引入檔的內容也會引入至要求引入的檔案。

另外不一樣的一點是,如果載入不到檔案,require 會直接報 Error,所以就不會往下繼續執行。

include_once 與 require_once

如果在後面加上 _once 字符,則會在引入前先檢查是否有在其它地方載入了同樣的檔案,如果有就不會再次載入。

例如說有一些自訂函式,怕重複載入而出現錯誤,就很適合使用這個方法載入。

該使用 include 還是 require

查了些網路上的資料,表示動態內容適合使用 include、靜態內容則適合使用 require,不過都沒有提到為什麼,可能是我沒有看到解釋或是才疏學淺 XD

可能是因為相對來講 include 在錯誤表達方面似乎不像 require 那麼嚴謹(?)不過這只是我的猜測,不保證是對的,如果有大神路過,可能要麻煩大神指教 XD

參考資料


希望我的文章能夠幫助到你,有任何問題或是想與我討論交流,歡迎透過留言與我分享你的觀點。

如果你喜歡我的文章,想支持我繼續撰寫更多文章,歡迎你:

  1. 將我的部落格加入書籤,隨時造訪部落格。
  2. 將我的文章分享給你的親朋好友。
  3. 透過 LikeButton 幫我按 5 下讚。
  4. 每月贊助 LikeCoin 請我喝杯咖啡。(雖然我不喝咖啡啦 XD)