PHP中include與require使用方法區(qū)別詳解
在PHP變成中,include()與require()的功能相同,include(include_once) 與 require(require_once)都是把把包含的文件代碼讀入到指定位置來,但是二者再用法上有區(qū)別:(include()是有條件包含函數(shù),而require()則是無條件包含函數(shù))
1, 使用方式不同
(1) require 的使用方法如 require("requireFile.php"); 。這個(gè)函式通常放在 PHP 程式的最前面,PHP 程式在執(zhí)行前,就會先讀入 require 所指定引入的檔案,使它變成 PHP 程式網(wǎng)頁的一部份。常用的函式,亦可以這個(gè)方法將它引入網(wǎng)頁中。引入是無條件的,發(fā)生在程序執(zhí)行前,不管條件是否成立都要導(dǎo)入(可能不執(zhí)行)。
(2) include 使用方法如 include("includeFile.php"); 。這個(gè)函式一般是放在流程控制的處理區(qū)段中。PHP 程式網(wǎng)頁在讀到 include 的檔案時(shí),才將它讀進(jìn)來。這種方式,可以把程式執(zhí)行時(shí)的流程簡單化。引入是有條件的,發(fā)生在程序執(zhí)行時(shí),只有條件成立時(shí)才導(dǎo)入(可以簡化編譯生成的代碼)。
例如在下面的一個(gè)例子中,如果變量$somgthing為真,則將包含文件somefile:
if($something){
include("somefile");
}
但不管$something取何值,下面的代碼將把文件somefile包含進(jìn)文件里:
if($something){
require("somefile");
}
下面的這個(gè)有趣的例子充分說明了這兩個(gè)函數(shù)之間的不同。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
}
在這段代碼中,每一次循環(huán)的時(shí)候,程序都將把同一個(gè)文件包含進(jìn)去。很顯然這不是程序員的初衷,從代碼中我們可以看出這段代碼希望在每次循環(huán)時(shí),將不同的文件包含進(jìn)來。如果要完成這個(gè)功能,必須求助函數(shù)include():
$i = 1;
while ($i < 3) {
include("somefile.$i");
$i++;
}
2. 執(zhí)行時(shí)報(bào)錯(cuò)方式不同
include和require的區(qū)別:include引入文件的時(shí)候,如果碰到錯(cuò)誤,會給出提示,并繼續(xù)運(yùn)行下邊的代碼,require引入文件的時(shí)候,如果碰到錯(cuò)誤,會給出提示,并停止運(yùn)行下邊的代碼。例如下面例子:
寫兩個(gè)php文件,名字為test1.php 和test2.php,注意相同的目錄中,不要存在一個(gè)名字是test3.php的文件。
test1.php
<?PHP
include (”test3.php”);
echo “abc”;
?>
test2.php
<?PHP
require (”test3.php”)
echo “abc”;
?>
瀏覽第一個(gè)文件,因?yàn)闆]有找到test999.php文件,我們看到了報(bào)錯(cuò)信息,同時(shí),報(bào)錯(cuò)信息的下邊顯示了abc,你看到的可能是類似下邊的情況:
Warning: include(test3.php) [function.include]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2
Warning: include() [function.include]: Failed opening ‘test3.php' for inclusion (include_path='.;C:\php5\pear') in D:\WebSite\test.php on line 2
abc (下面的被執(zhí)行了)
瀏覽第二個(gè)文件,因?yàn)闆]有找到test3.php文件,我們看到了報(bào)錯(cuò)信息,但是,報(bào)錯(cuò)信息的下邊沒有顯示abc,你看到的可能是類似下邊的情況:
Warning: require(test3.php) [function.require]: failed to open stream: No such file or directory in D:\WebSite\test2.php on line 2
Fatal error: require() [function.require]: Failed opening required ‘test3.php' (include_path='.;C:\php5\pear') in D:\WebSite\test.php on line 2
下面的未被執(zhí)行,直接結(jié)束
總之,include時(shí)執(zhí)行時(shí)調(diào)用的,是一個(gè)過程行為,有條件的,而require是一個(gè)預(yù)置行為,無條件的。
- PHP中include和require的區(qū)別實(shí)例分析
- php使用include 和require引入文件的區(qū)別
- PHP中include()與require()的區(qū)別說明
- PHP中include/require/include_once/require_once使用心得
- 簡單談?wù)凱HP中的include、include_once、require以及require_once語句
- PHP中require和include路徑問題詳解
- PHP包含文件函數(shù)include、include_once、require、require_once區(qū)別總結(jié)
- php include和require的區(qū)別深入解析
- PHP中include()與require()的區(qū)別說明
- PHP中include和require的使用詳解
相關(guān)文章
PHP與JavaScript針對Cookie的讀寫、交互操作方法詳解
這篇文章主要介紹了PHP與JavaScript針對Cookie的讀寫、交互操作方法,結(jié)合實(shí)例形式分析了php與javascript設(shè)置cookie、php讀取php及js設(shè)置的cookie、js讀取php及js設(shè)置的cookie等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08深入解析yii權(quán)限分級式訪問控制的實(shí)現(xiàn)(非RBAC法)
本篇文章是對yii權(quán)限分級式訪問控制的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php自定義二維數(shù)組排序函數(shù)array_orderby用法示例
這篇文章主要介紹了php自定義二維數(shù)組排序函數(shù)array_orderby用法,結(jié)合實(shí)例形式分析了php針對二維數(shù)組進(jìn)行排序的相關(guān)遍歷、判定、排序等操作技巧,需要的朋友可以參考下2018-03-03詳解php設(shè)置session(過期、失效、有效期)
這篇文章主要介紹了php設(shè)置session,其實(shí)php中設(shè)置session有很多方面包,包括session設(shè)置值或直接設(shè)置過期、失效和有效期,需要的朋友可以參考下2015-11-11php使用mysqli和pdo擴(kuò)展,測試對比mysql數(shù)據(jù)庫的執(zhí)行效率完整示例
這篇文章主要介紹了php使用mysqli和pdo擴(kuò)展,測試對比mysql數(shù)據(jù)庫的執(zhí)行效率,結(jié)合完整實(shí)例形式對比分析了php分別使用mysqli與pdo進(jìn)行數(shù)據(jù)庫插入操作的執(zhí)行時(shí)間,需要的朋友可以參考下2019-05-05