溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

include()與require()在PHP中有什么不同

發(fā)布時間:2021-01-27 16:53:55 來源:億速云 閱讀:110 作者:Leah 欄目:開發(fā)技術(shù)

include()與require()在PHP中有什么不同?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

require 的使用方法如 require("MyRequireFile.php"); 。這個函數(shù)通常放在 PHP 程序的最前面,PHP 程序在執(zhí)行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網(wǎng)頁的一部份。常用的函數(shù),亦可以這個方法將它引入網(wǎng)頁中。

include 使用方法如 include("MyIncludeFile.php"); 。這個函數(shù)一般是放在流程控制的處理部分中。PHP 程序網(wǎng)頁在讀到 include 的文件時,才將它讀進(jìn)來。這種方式,可以把程序執(zhí)行時的流程簡單化。

他們兩個的用途是完全一樣的,不一定非得哪個放在最前面哪個放在中間。他們最根本的區(qū)別在于錯誤處理的方式不一樣。

require一個文件存在錯誤的話,那么程序就會中斷執(zhí)行了,并顯示致命錯誤

include一個文件存在錯誤的話,那么程序不會中端,而是繼續(xù)執(zhí)行,并顯示一個警告錯誤。

以下為補充:

1. include有返回值,而require沒有。

2. include()包括并運行指定文件 在處理失敗時include() 產(chǎn)生一個警告,被導(dǎo)入的程序代碼都會被執(zhí)行,而且這些程序在執(zhí)行的時候會擁有和源文件中呼叫到include()語句的位置相同的變量范圍。你可以導(dǎo)入同一個服務(wù)器中的靜態(tài)頁面。

3. include_once()的作用和include()是幾乎相同的

唯一的差別在于include_once()會先檢查要導(dǎo)入的檔案是不是已經(jīng)在該程序中的其它地方被導(dǎo)入過了,如果有的話就不會再次重復(fù)導(dǎo)入(這項功能有時候是很重要的,比方說要導(dǎo)入的里面宣告了一些你自行定義好的函數(shù),那么如果在同一個程序重復(fù)導(dǎo)入這個文件,在第二次導(dǎo)入的時候便會發(fā)生錯誤訊息,因為PHP不允許相同名稱的函數(shù)被重復(fù)宣告第二次)。

4. require()會將目標(biāo)文件的內(nèi)容讀入,并且把自己本身代換成這些讀入的內(nèi)容 在處理失敗時require() 則導(dǎo)致一個致命錯。

這個讀入并且代換的動作是在PHP引擎編譯你的程序代碼的時候發(fā)生的,而不是發(fā)生在PHP引擎開始執(zhí)行編譯好的程序代碼的時候(PHP 3.0引擎的工作方式是編譯一行執(zhí)行一行,但是到了PHP 4.0以后就有所改變了,PHP 4.0是先把整個程序代碼全部編譯完成后,再將這些編譯好的程序代碼一次執(zhí)行完畢,在編譯的過程中不會執(zhí)行任何程序代碼)。require()通常來導(dǎo)入靜態(tài)的內(nèi)容,而include()則適合用導(dǎo)入動態(tài)的程序代碼。

5. 如同include_once(),require_once()會先檢查目標(biāo)文件的內(nèi)容是不是在之前就已經(jīng)導(dǎo)入過了,如果是的話,便不會再次重復(fù)導(dǎo)入同樣的內(nèi)容。

6. require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執(zhí)行require。

7. require通常放在PHP程序的最前面,PHP程序在執(zhí)行前,就會先讀入require所指定引入的文件,使它變成PHP程序網(wǎng)頁的一部份。常用的函數(shù),亦可以這個方法將它引入網(wǎng)頁中。

8. include一般是放在流程控制的處理部分中PHP程序網(wǎng)頁在讀到include的文件時,才將它讀進(jìn)來。這種方式可以把程序執(zhí)行時的流程簡單化。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI