[PHP] require/include 有何不同?如何使用?

[PHP] require/include 有何不同?如何使用?

require 與 include 在撰寫 PHP 程式的時候使用的頻率非常的高,一般懶人寫法都是 require/include 一種方法直接寫到底。但 require 跟 include 兩種語法在實際作用上其實有些微的不同,了解兩者之中的差異之後,未來撰寫程式的時候靈活搭配,有時候會有意想不到的結果呦 (╯°▽°)╯ ┻━┻

require/include

用 require 來引用檔案的時候,系統會把 require 的檔案視為在整個程式中的「必需品」,也就是只要他出了問題,整個程式就會被中斷,在那一行程式碼以下的所有內容都會被中斷。

舉個簡單的例子,先使用以下程式碼來使用 require 語法引用 example.php 這個檔案,然後再刻意將 example.php 改名,使 require 引用失敗來觀察程式碼動作。

當程式碼正常運作的時候,example.php 內的文字與 require 語法下的 End 文字都能正常顯示。

但如果在引用 example.php 時出現錯誤,整個程式會出現錯誤訊息,而且連 require 之後的 echo 'End'; 都不動作了。(┛`д´)┛

而如果使用 include 的話剛好相反,就算引用 example.php 時出錯,原本 index.php 後面的程式碼也能照常運行。


require_once/include_once

require_once/include_once 在引用檔案時會先檢查先前是否已經引用過,如果被重複引用的話 require_once/include_once 會直接不動作,減少重複引用檔案時的系統效能消耗。

如果都使用 require/include 的話,出現重複引用的狀態時會照常執行。

使用 require_once/include_once 語法,引用 example.php 的動作則只執行一次。

發表迴響