PHP中include()與require()的區(qū)別說(shuō)明
require 的使用方法如 require("MyRequireFile.php");
。這個(gè)函數(shù)通常放在 PHP 程序的最前面,PHP 程序在執(zhí)行前,就會(huì)先讀入 require 所指定引入的文件,使它變成 PHP 程序網(wǎng)頁(yè)的一部份。常用的函數(shù),亦可以這個(gè)方法將它引入網(wǎng)頁(yè)中。
include 使用方法如 include("MyIncludeFile.php");
。這個(gè)函數(shù)一般是放在流程控制的處理部分中。PHP 程序網(wǎng)頁(yè)在讀到 include 的文件時(shí),才將它讀進(jìn)來(lái)。這種方式,可以把程序執(zhí)行時(shí)的流程簡(jiǎn)單化。
他們兩個(gè)的用途是完全一樣的,不一定非得哪個(gè)放在最前面哪個(gè)放在中間。他們最根本的區(qū)別在于錯(cuò)誤處理的方式不一樣。
require一個(gè)文件存在錯(cuò)誤的話,那么程序就會(huì)中斷執(zhí)行了,并顯示致命錯(cuò)誤
include一個(gè)文件存在錯(cuò)誤的話,那么程序不會(huì)中端,而是繼續(xù)執(zhí)行,并顯示一個(gè)警告錯(cuò)誤。
其他用戶的補(bǔ)充
在 PHP 中,您可以在服務(wù)器執(zhí)行 PHP 文件之前在該文件中插入一個(gè)文件的內(nèi)容。
include 和 require 語(yǔ)句用于在執(zhí)行流中插入寫在其他文件中的有用的代碼。
include 和 require 除了處理錯(cuò)誤的方式不同之外,在其他方面都是相同的:
require 生成一個(gè)致命錯(cuò)誤(E_COMPILE_ERROR),在錯(cuò)誤發(fā)生后腳本會(huì)停止執(zhí)行。
include 生成一個(gè)警告(E_WARNING),在錯(cuò)誤發(fā)生后腳本會(huì)繼續(xù)執(zhí)行。
因此,如果您希望繼續(xù)執(zhí)行,并向用戶輸出結(jié)果,即使包含文件已丟失,那么請(qǐng)使用 include。否則,在框架、CMS 或者復(fù)雜的 PHP 應(yīng)用程序編程中,請(qǐng)始終使用 require 向執(zhí)行流引用關(guān)鍵文件。這有助于提高應(yīng)用程序的安全性和完整性,在某個(gè)關(guān)鍵文件意外丟失的情況下。
包含文件省去了大量的工作。這意味著您可以為所有網(wǎng)頁(yè)創(chuàng)建標(biāo)準(zhǔn)頁(yè)頭、頁(yè)腳或者菜單文件。然后,在頁(yè)頭需要更新時(shí),您只需更新這個(gè)頁(yè)頭包含文件即可。
補(bǔ)充2
1. include有返回值,而require沒(méi)有。
2. include()包括并運(yùn)行指定文件 在處理失敗時(shí)include() 產(chǎn)生一個(gè)警告,被導(dǎo)入的程序代碼都會(huì)被執(zhí)行,而且這些程序在執(zhí)行的時(shí)候會(huì)擁有和源文件中呼叫到include()語(yǔ)句的位置相同的變量范圍。你可以導(dǎo)入同一個(gè)服務(wù)器中的靜態(tài)頁(yè)面。
3. include_once()的作用和include()是幾乎相同的
唯一的差別在于include_once()會(huì)先檢查要導(dǎo)入的檔案是不是已經(jīng)在該程序中的其它地方被導(dǎo)入過(guò)了,如果有的話就不會(huì)再次重復(fù)導(dǎo)入(這項(xiàng)功能有時(shí)候是很重要的,比方說(shuō)要導(dǎo)入的里面宣告了一些你自行定義好的函數(shù),那么如果在同一個(gè)程序重復(fù)導(dǎo)入這個(gè)文件,在第二次導(dǎo)入的時(shí)候便會(huì)發(fā)生錯(cuò)誤訊息,因?yàn)镻HP不允許相同名稱的函數(shù)被重復(fù)宣告第二次)。
4. require()會(huì)將目標(biāo)文件的內(nèi)容讀入,并且把自己本身代換成這些讀入的內(nèi)容 在處理失敗時(shí)require() 則導(dǎo)致一個(gè)致命錯(cuò)。
這個(gè)讀入并且代換的動(dòng)作是在PHP引擎編譯你的程序代碼的時(shí)候發(fā)生的,而不是發(fā)生在PHP引擎開始執(zhí)行編譯好的程序代碼的時(shí)候(PHP 3.0引擎的工作方式是編譯一行執(zhí)行一行,但是到了PHP 4.0以后就有所改變了,PHP 4.0是先把整個(gè)程序代碼全部編譯完成后,再將這些編譯好的程序代碼一次執(zhí)行完畢,在編譯的過(guò)程中不會(huì)執(zhí)行任何程序代碼)。require()通常來(lái)導(dǎo)入靜態(tài)的內(nèi)容,而include()則適合用導(dǎo)入動(dòng)態(tài)的程序代碼。
5. 如同include_once(),require_once()會(huì)先檢查目標(biāo)文件的內(nèi)容是不是在之前就已經(jīng)導(dǎo)入過(guò)了,如果是的話,便不會(huì)再次重復(fù)導(dǎo)入同樣的內(nèi)容。
5. require是無(wú)條件包含也就是如果一個(gè)流程里加入require,無(wú)論條件成立與否都會(huì)先執(zhí)行require。
7. require通常放在PHP程序的最前面,PHP程序在執(zhí)行前,就會(huì)先讀入require所指定引入的文件,使它變成PHP程序網(wǎng)頁(yè)的一部份。常用的函數(shù),亦可以這個(gè)方法將它引入網(wǎng)頁(yè)中。
8. include一般是放在流程控制的處理部分中PHP程序網(wǎng)頁(yè)在讀到include的文件時(shí),才將它讀進(jìn)來(lái)。這種方式可以把程序執(zhí)行時(shí)的流程簡(jiǎn)單化。
require(),include(),require_once()和include_once()區(qū)別
- PHP中include和require的區(qū)別實(shí)例分析
- php使用include 和require引入文件的區(qū)別
- PHP中include()與require()的區(qū)別說(shuō)明
- PHP中include/require/include_once/require_once使用心得
- 簡(jiǎn)單談?wù)凱HP中的include、include_once、require以及require_once語(yǔ)句
- PHP中require和include路徑問(wèn)題詳解
- PHP包含文件函數(shù)include、include_once、require、require_once區(qū)別總結(jié)
- PHP中include與require使用方法區(qū)別詳解
- php include和require的區(qū)別深入解析
- PHP中include和require的使用詳解
相關(guān)文章
PHP中數(shù)字檢測(cè)is_numeric與ctype_digit的區(qū)別介紹
PHP中的兩個(gè)函數(shù)is_numeric和ctype_digit都是檢測(cè)字符串是否是數(shù)字,但也存在一點(diǎn)區(qū)別2012-10-10C# WinForm中實(shí)現(xiàn)快捷鍵自定義設(shè)置實(shí)例
這篇文章主要介紹了對(duì)C# WinForm中實(shí)現(xiàn)快捷鍵自定義設(shè)置實(shí)例,本文實(shí)現(xiàn)了大多數(shù)軟件如QQ、有道詞典中的快捷鍵設(shè)置功能,即按下相應(yīng)按鍵后顯示在文本框中,需要的朋友可以參考下2015-01-01PHP實(shí)現(xiàn)簡(jiǎn)單的模板引擎功能示例
這篇文章主要介紹了PHP實(shí)現(xiàn)簡(jiǎn)單的模板引擎功能,結(jié)合實(shí)例形式詳細(xì)分析了PHP實(shí)現(xiàn)模板引擎功能的模版類、編譯類、控制器類及模板文件等實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09PHP5中使用mysqli的prepare操作數(shù)據(jù)庫(kù)的介紹
今天小編就為大家分享一篇關(guān)于PHP5中使用mysqli的prepare操作數(shù)據(jù)庫(kù)的介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03php實(shí)現(xiàn)從上傳文件創(chuàng)建縮略圖的方法
這篇文章主要介紹了php實(shí)現(xiàn)從上傳文件創(chuàng)建縮略圖的方法,涉及php操作上傳文件及圖片操作的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04對(duì)象失去焦點(diǎn)時(shí)自己動(dòng)提交數(shù)據(jù)的實(shí)現(xiàn)代碼
生產(chǎn)線上,提升輸入員輸入效率,在沒(méi)有購(gòu)買到Bar code槍之前,需要修改程序,即是說(shuō)當(dāng)mouse光標(biāo)離開TextBox之后,數(shù)據(jù)自動(dòng)提交到數(shù)據(jù)庫(kù)中2012-11-11過(guò)濾掉PHP數(shù)組中的重復(fù)值的實(shí)現(xiàn)代碼
去除一個(gè)數(shù)組中的重復(fù)值,可以使用foreach方法,也可以使用array_unique方法,下面的代碼兩種方法都使用了。2011-07-07總結(jié)PHP代碼規(guī)范、流程規(guī)范、git規(guī)范
這篇內(nèi)容我們整理總結(jié)了關(guān)于PHP代碼規(guī)范、流程規(guī)范、git規(guī)范的詳細(xì)內(nèi)容,對(duì)此有興趣的朋友可以學(xué)習(xí)下。2018-06-06