您好,登錄后才能下訂單哦!
php中include與require的區別是什么?今天小編總結這篇有關include與require的文章,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。
一 使用語法和簡介
1、include()語法:
include(/path/to/filename)
include()語句將在其被調用的位置處包含一個文件。包含一個文件與在該語句所在位置復制制定文件的數據具有相同內容的效果。
使用include()時可以忽略括號。在條件語句中使用include(),它必須包圍在語句塊大括號中,或者用其他語句包圍符括起來。
2、include_once()語法:
include_once(filename)
include_once() 語句在腳本執行期間包含并運行指定文件。此行為和 include() 語句類似,唯一區別是include_once()會先判斷一下這個文件在之前是否已經被包含過,如已經包含,則忽略本次包含。
3、require()語法:
require(filename)
require()在很大程度上與include相同,都是將一個模板文件包含到require調用坐在的位置。require和include之間有兩點重要的區別。
一、無論require的位置如何,制定文件都將包含到出現require的腳本中。例如,即使require放在計算結果為假的if語句中,依然會包含指定文件。
二、require出錯時,腳本將停止運行,而在使用include的情況下,腳本將繼續執行。
4、require_once()語法:
require_once(filename)
require_once() 語句在腳本執行期間包含并運行指定文件。此行為和 require() 語句類似,唯一區別是require_once()會先判斷一下這個文件在之前是否已經被包含過,如已經包含,則忽略本次包含。
二 區別總結
1、include()與require()語句區別。
示例一
include('hello.php'); echo 'include test final!';//include報錯,但是會繼續執行,顯示:include test final! require('hello.php'); echo 'require test final!';//require報錯,停止代碼的執行。
小結:
⑴ include() 產生一個警告,腳本會繼續運行。
⑵ require() 則導致一個致命錯誤,腳本會停止運行。
換句話說,如果想在遇到丟失文件或遇到錯誤時停止處理頁面就用 require()。如果想在遇到錯誤時繼續處理頁面就用 include()。
注意在 PHP 4.3.5 之前,包含文件中的語法錯誤不會導致程序停止,但從此版本之后會。
2、require() 無論如何都會包含文件,而include() 可以有選擇地包含
示例二
<?php if(FALSE){ require('x.php'); } if(FALSE){ include('s.php'); } ?>
上面的代碼中:x.php 一定會被包含,而 s.php 一定不會被包含。
3、include_once()、require_once()與include()、require()的區別
include_once()和require_once()一樣,應該用于在腳本執行期間同一個文件有可能被包含超過一次的情況下,想確保它只被包含一次以避免函數重定義,變量重新賦值等問題。這就是include_once()和require_once()與include() 和require()的主要區別。
三 需要注意的問題
1、路徑問題
特別是嵌套包含的時候,一定得注意包含文件的路徑。比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一個文件夾下,這個時候往往很容易出錯誤。
解決方案:可以使用 dirname(__FILE__) 語句,這句的意思是獲得當前腳本的絕對路徑。如:require_once(dirname(__FILE__).'/config.php');
2、效率問題
include_once(),require_once(),與include(),require()比較,效率要低一些,因為他們至少得先判斷一下這個文件是否已包含。這一問題在PHP5版本有很大改進,不過效率還是有差別。
關于include與require的區別就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。