3 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
PHP的include()和require()是兩種包含外部文件的方法,二者的區(qū)別如下:
1:加載失敗的處理方式不同:
include()會(huì)產(chǎn)生一個(gè)警告,而require()則導(dǎo)致一個(gè)致命的錯(cuò)誤(出現(xiàn)錯(cuò)誤,腳本停止執(zhí)行)
require() :如果文件不存在,會(huì)報(bào)出一個(gè)fatal error.腳本停止執(zhí)行
include() : 如果文件不存在,會(huì)給出一個(gè) warning,但腳本會(huì)繼續(xù)執(zhí)行
這里特別要注意的是:使用include()文件不存在時(shí),腳本繼續(xù)執(zhí)行,這種情況只出現(xiàn)在PHP 4.3.5之前
推薦使用require_once()和include_once(),可以檢測(cè)文件是否有重復(fù)包含。
2.php性能不同
對(duì)include()來(lái)說(shuō),在 include()執(zhí)行時(shí)文件每次都要進(jìn)行讀取和評(píng)估;
而對(duì)于require()來(lái)說(shuō),文件只處理一次(實(shí)際上,文件內(nèi)容替換了require()語(yǔ)句)。
這就意味著如果有包含這些指令之一的代碼和可能執(zhí)行多次的代碼,則使用require()效率比較高。
另一方面,如果每次執(zhí)行代碼時(shí)相讀取不同的文件,或者有通過(guò)一組文件疊代的循環(huán),就使用include(),
因?yàn)榭梢越o想要包括的文件名設(shè)置一個(gè)變量,當(dāng)參數(shù)為include()時(shí)使用這個(gè)變量。
3.二種方式提供不同的使用彈性
require 的使用方法如 require("./inc.php"); 。通常放在 PHP 程式的最前面,PHP 程式在執(zhí)行前,就會(huì)先讀入 require 所指定引入的檔案,使它變成 PHP 程式網(wǎng)頁(yè)的一部份。
include 使用方法如 include("./inc/.php"); 。一般是放在流程控制的處理區(qū)段中。PHP 程式網(wǎng)頁(yè)在讀到 include 的檔案時(shí),才將它讀進(jìn)來(lái)。這種方式,可以把程式執(zhí)行時(shí)的流程簡(jiǎn)單化。
require即使在條件位FALSE的時(shí)候也會(huì)被包含,而include只會(huì)在執(zhí)行到改位置時(shí)候才會(huì)去執(zhí)行。
require_once() 語(yǔ)句在腳本執(zhí)行期間包括并運(yùn)行指定文件。此行為和 require() 語(yǔ)句類似,唯一區(qū)別是如果該文件中的代碼已經(jīng)被包括了,則不會(huì)再次包括。require_once()函數(shù)的作用和 require() 是幾乎相同的
include_once() 語(yǔ)句在腳本執(zhí)行期間包括并運(yùn)行指定文件。此行為和 include() 語(yǔ)句類似,唯一區(qū)別是如果該文件中的代碼已經(jīng)被包括了,則不會(huì)再次包括。include_once()函數(shù)的作用和 include() 是幾乎相同的
require_once的作用是會(huì)檢查之前是否加載過(guò)該文件,如果沒(méi)有加載則加載 如果加載過(guò)就不再次加載,比如某文件定義了一個(gè)類型 如果兩次加載該文件會(huì)出現(xiàn)錯(cuò)誤。

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
二種方式提供不同的使用彈性。
require 的使用方法如 require("MyRequireFile.php"); 。這個(gè)函式通常放在 PHP 程式的最前面,PHP 程式在執(zhí)行前,就會(huì)先讀入 require 所指定引入的檔案,使它變成 PHP 程式網(wǎng)頁(yè)的一部份。常用的函式,亦可以這個(gè)方法將它引入網(wǎng)頁(yè)中。
include 使用方法如 include("MyIncludeFile.php"); 。這個(gè)函式一般是放在流程控制的處理區(qū)段中。PHP 程式網(wǎng)頁(yè)在讀到 include 的檔案時(shí),才將它讀進(jìn)來(lái)。這種方式,可以把程式執(zhí)行時(shí)的流程簡(jiǎn)單化。
- 3 回答
- 0 關(guān)注
- 693 瀏覽
添加回答
舉報(bào)