深入掌握include_once與require_once的區(qū)別
更新時(shí)間:2013年06月17日 10:26:02 作者:
要深入掌握include(_once)與require(_once),需要掌握以下幾點(diǎn)內(nèi)容,不過(guò)有人建議不建議使用
①作用及用法
可以減少代碼的重復(fù)
include(_once)("文件的路徑")與require(_once)("文件的路徑")
②理解
說(shuō)白了,就是用包含進(jìn)來(lái)的文件中的內(nèi)容 代替 include(_once),require(_once)那一行
③注意
include/require 包含進(jìn)來(lái)的文件必須要加<?php ?>因?yàn)樵诎瑫r(shí),首先理解文件內(nèi)容是普通字符串,碰到<?php ?> 標(biāo)簽時(shí),才去解釋
④路徑
可以用絕對(duì)路徑,也可以用相對(duì)路徑;windows下正反斜線都可以,linux下只認(rèn)正斜線,所以最好用正斜線
⑤區(qū)別
include是包含的意思,找不到文件時(shí),會(huì)報(bào)warning的錯(cuò)誤,然后程序繼續(xù)往下執(zhí)行
require是必須的意思,找不到文件時(shí),會(huì)報(bào)fatal error (致命錯(cuò)誤),程序停止往下執(zhí)行
加once后,系統(tǒng)會(huì)進(jìn)行判斷,如果已經(jīng)包含,則不會(huì)再包含第二次
eg:有一個(gè)a.php文件 內(nèi)容是<?php $a++ ;?>
在b.php文件中的內(nèi)容是 $a=5; require_once("a.php"); echo $a; require_once("a.php"); echo $a;
結(jié)果第一處輸出的是6, 第二處輸出的還是6,說(shuō)明。。_once只包含一次 ,如果不加once,則第二處輸出的會(huì)是7
⑥取舍
比如是系統(tǒng)配置,缺少了,網(wǎng)站不讓運(yùn)行,自然用require,如果是某一段統(tǒng)計(jì)程序,少了,對(duì)網(wǎng)站只是少統(tǒng)計(jì)人數(shù)罷了,不是必須要的,可以用include
而加不加once是效率上的區(qū)別,加上once,雖然系統(tǒng)幫你考慮了只加載一次,但系統(tǒng)的判斷會(huì)是效率降低,因此,更應(yīng)該在開(kāi)發(fā)之初,就把目錄結(jié)構(gòu)調(diào)整好,盡量不要用_once的情況。
⑦特殊用法
利用include/require返回被包含頁(yè)面的返回值
a.php頁(yè)面中: ..... return $value; b.php頁(yè)面中:$v = include("a.php");
<!--[endif]-->
這個(gè)用法在做網(wǎng)站配置的時(shí)候會(huì)偶爾碰到!
可以減少代碼的重復(fù)
include(_once)("文件的路徑")與require(_once)("文件的路徑")
②理解
說(shuō)白了,就是用包含進(jìn)來(lái)的文件中的內(nèi)容 代替 include(_once),require(_once)那一行
③注意
include/require 包含進(jìn)來(lái)的文件必須要加<?php ?>因?yàn)樵诎瑫r(shí),首先理解文件內(nèi)容是普通字符串,碰到<?php ?> 標(biāo)簽時(shí),才去解釋
④路徑
可以用絕對(duì)路徑,也可以用相對(duì)路徑;windows下正反斜線都可以,linux下只認(rèn)正斜線,所以最好用正斜線
⑤區(qū)別
include是包含的意思,找不到文件時(shí),會(huì)報(bào)warning的錯(cuò)誤,然后程序繼續(xù)往下執(zhí)行
require是必須的意思,找不到文件時(shí),會(huì)報(bào)fatal error (致命錯(cuò)誤),程序停止往下執(zhí)行
加once后,系統(tǒng)會(huì)進(jìn)行判斷,如果已經(jīng)包含,則不會(huì)再包含第二次
eg:有一個(gè)a.php文件 內(nèi)容是<?php $a++ ;?>
在b.php文件中的內(nèi)容是 $a=5; require_once("a.php"); echo $a; require_once("a.php"); echo $a;
結(jié)果第一處輸出的是6, 第二處輸出的還是6,說(shuō)明。。_once只包含一次 ,如果不加once,則第二處輸出的會(huì)是7
⑥取舍
比如是系統(tǒng)配置,缺少了,網(wǎng)站不讓運(yùn)行,自然用require,如果是某一段統(tǒng)計(jì)程序,少了,對(duì)網(wǎng)站只是少統(tǒng)計(jì)人數(shù)罷了,不是必須要的,可以用include
而加不加once是效率上的區(qū)別,加上once,雖然系統(tǒng)幫你考慮了只加載一次,但系統(tǒng)的判斷會(huì)是效率降低,因此,更應(yīng)該在開(kāi)發(fā)之初,就把目錄結(jié)構(gòu)調(diào)整好,盡量不要用_once的情況。
⑦特殊用法
利用include/require返回被包含頁(yè)面的返回值
a.php頁(yè)面中: ..... return $value; b.php頁(yè)面中:$v = include("a.php");
<!--[endif]-->
這個(gè)用法在做網(wǎng)站配置的時(shí)候會(huì)偶爾碰到!
您可能感興趣的文章:
- node.js使用require()函數(shù)加載模塊
- 探索angularjs+requirejs全面實(shí)現(xiàn)按需加載的套路
- 在JavaScript應(yīng)用中使用RequireJS來(lái)實(shí)現(xiàn)延遲加載
- php命令行(cli)模式下報(bào)require 加載路徑錯(cuò)誤的解決方法
- 使用RequireJS庫(kù)加載JavaScript模塊的實(shí)例教程
- 簡(jiǎn)單模擬node.js中require的加載機(jī)制
- require.js 加載 vue組件 r.js 合并壓縮的實(shí)例
- require(),include(),require_once()和include_once()區(qū)別
- nodejs的require模塊(文件模塊/核心模塊)及路徑介紹
- 自定義require函數(shù)讓瀏覽器按需加載Js文件
相關(guān)文章
PHP使用pdo實(shí)現(xiàn)事務(wù)處理操作示例
這篇文章主要介紹了PHP使用pdo實(shí)現(xiàn)事務(wù)處理操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了php基于pdo實(shí)現(xiàn)事務(wù)處理的相關(guān)原理與操作技巧,需要的朋友可以參考下2018-09-09ThinkPHP6使用最新版本Endroid/QrCode生成二維碼的方法實(shí)例
這篇文章主要介紹了ThinkPHP6使用最新版本Endroid/QrCode生成二維碼的方法,結(jié)合實(shí)例形式詳細(xì)分析了ThinkPHP6使用最新版本Endroid/QrCode生成二維碼具體步驟、原理、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2023-07-07PHP+AJAX實(shí)現(xiàn)無(wú)刷新注冊(cè)(帶用戶(hù)名實(shí)時(shí)檢測(cè))
PHP+AJAX實(shí)現(xiàn)無(wú)刷新注冊(cè)(帶用戶(hù)名實(shí)時(shí)檢測(cè))...2007-01-01PHP7如何開(kāi)啟Opcode打造強(qiáng)悍性能詳解
這篇文章主要給大家介紹了關(guān)于PHP7如何開(kāi)啟Opcode打造強(qiáng)悍性能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05PHP鉤子與簡(jiǎn)單分發(fā)方式實(shí)例分析
這篇文章主要介紹了PHP鉤子與簡(jiǎn)單分發(fā)方式,結(jié)合實(shí)例形式分析了PHP鉤子的定義與使用方法,以及多通道自由切換的實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09PHP 輸出簡(jiǎn)單動(dòng)態(tài)WAP頁(yè)面
首先,不管你是在本地調(diào)試還是想瀏覽網(wǎng)絡(luò)上的wap頁(yè)面,都需要一個(gè)能解析wap頁(yè)面的瀏覽器2009-06-06