include()
include_once()
require()
require_once()
都屬於可以直接引用外部檔案的函式
主要是將檔案引入主要程式碼內,也就是說引入的檔案內容為主程式的一部份
若主程式使用include()來引入檔案時,主程式呼叫一次include(),就會立即引用一次
若主程式呼叫一百次,該檔案就會被引入一百次。
除了require()與include()函數外,PHP還提供有require_once()
與include_once()
這兩個雷同的引入檔函數,可以防止進行重複引入檔案時,造成多次重覆讀取而使得常數或自訂函數重複定義的情形。
例:第一次迴圈時藉由require(“discount.php”)函數引入折扣運算檔案後,可以順利的進行discount這個自訂函數的運算,可是,第二次迴路時若再利用require(“discount.php”)函數進行引入檔案時,將發生無法重新宣告discount()這個自訂函數的錯誤。整個在利用瀏覽程式時,將出現錯誤顯示。
若不希望每次迴路的執行造成重複引入檔案時發生了重複定義常數或函數的衝突,則可以將原本的require()含數改成require_once(),或者include()函數改成include_once(),讓引入的檔案無論如何都只被引入一次而已。
include()提供有回傳值(return)的功能
但是require()函數並不容許有回傳值
若引入檔的程式中有誤,譬如,甚至整個引入檔的儲存位置錯誤或根本就不存在,
則若使用require()函數來進行引入檔案的引入時,會直接停止程式的執行;
若使用的是include()函數來進行引入檔案的引入時,會先產生警告訊息並忽略錯誤而繼續執行後續的程式。
若不希望顯示錯誤的訊息,則可以將php.ini檔案裡的display_errors=On的參數設定改成display_errors=Off。
參考來源
https://slidesplayer.com/slide/14139731/
https://slidesplayer.com/slide/14499616/