當前位置: 首頁編程開發(fā)PHP → 幫你怎么區(qū)別include和require

幫你怎么區(qū)別include和require

更多

如何你多次面對PHP面試,會發(fā)現(xiàn)這種問題會經(jīng)常出現(xiàn),是不是很難區(qū)別開呢,其實不然,下面就跟大家分享一下,關于include和require的區(qū)別。

1.引用文件方式

對include()來說,在include()執(zhí)行時文件每次都要進行讀取和評估;而對于require()來說,文件只處理一次(實際上,文件內(nèi)容替換了require()語句)。這就意味著如果有包含這些指令之一的代碼和可能執(zhí)行多次的代碼,則使用require()效率比較高。另一方面,如果每次執(zhí)行代碼時相讀取不同的文件,或者有通過一組文件疊代的循環(huán),就使用include(),因為可以給想要包括的文件名設置一個變量,當參數(shù)為include()時使用這個變量。

 

2.是否有條件引用

 

在PHP變成中,include()與require()的功能相同,但在用法上卻有一些不同,include()是有條件包含函數(shù),而require()則是無條件包含函數(shù)。例如在下面的一個例子中,如果變量$somgthing為真,則將包含文件somefile:
if($something){
include("somefile");
}
但不管$something取何值,下面的代碼將把文件somefile包含進文件里:
if($something){
require("somefile");
}
下面的這個有趣的例子充分說明了這兩個函數(shù)之間的不同。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
}
在這段代碼中,每一次循環(huán)的時候,程序都將把同一個文件包含進去。很顯然這不是程序員的初衷,從代碼中我們可以看出這段代碼希望在每次循環(huán)時,將不同的文件包含進來。如果要完成這個功能,必須求助函數(shù)include():
$i = 1;
while ($i < 3) {
include("somefile.$i");
$i++;
}

 

3.報錯

 

用例子來說話,寫兩個php文件,名字為test1.php  和test2.php,注意相同的目錄中,不要存在一個名字是test999.php的文件。
test.php
<?PHP
include  (”test999.php”);
echo  “abc”;
?>

test2.php
<?PHP
require (”test999.php”)
echo  “abc”;
?>

瀏覽第一個文件,因為沒有找到test999.php文件,我們看到了報錯信息,同時,報錯信息的下邊顯示了abc,你看到的可能是類似下邊的情況:
Warning: include(test1aaa.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 ‘test1aaa.php’ for inclusion (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2
abc

瀏覽第二個文件,因為沒有找到test999.php文件,我們看到了報錯信息,但是,報錯信息的下邊沒有顯示abc,你看到的可能是類似下邊的情況:
Warning: require(test1aaa.php) [function.require]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

Fatal error: require() [function.require]: Failed opening required ‘test1aaa.php’ (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2

現(xiàn)在就能很清楚的知道include和require的區(qū)別:include引入文件的時候,如果碰到錯誤,會給出提示,并繼續(xù)運行下邊的代碼,require引入文件的時候,如果碰到錯誤,會給出提示,并停止運行下邊的代碼。

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)