include和require的區別

細節決定成敗!php

1.引用文件方式程序員

對include()來講,在include()執行時文件每次都要進行讀取和評估;而對於require()來講,文件只處理一次(實際上,文件內容替換了require()語句)。這就意味着若是有包含這些指令之一的代碼和可能執行屢次的代碼,則使用require()效率比較高。另外一方面,若是每次執行代碼時相讀取不一樣的文件,或者有經過一組文件疊代的循環,就使用include(),由於能夠給想要包括的文件名設置一個變量,當參數爲include()時使用這個變量。函數

 

2.是否有條件引用ui

 

 

 

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

 

3.報錯it

 

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

test2.php
<?PHP
require (」test999.php」)
echo  「abc」;
?>function

瀏覽第一個文件,由於沒有找到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 2test

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

如今就能很清楚的知道include和require的區別:include引入文件的時候,若是碰到錯誤,會給出提示,並繼續運行下邊的代碼,require引入文件的時候,若是碰到錯誤,會給出提示,並中止運行下邊的代碼。

相關文章
相關標籤/搜索