幫你怎么區(qū)別include和require
如何你多次面對(duì)PHP面試,會(huì)發(fā)現(xiàn)這種問(wèn)題會(huì)經(jīng)常出現(xiàn),是不是很難區(qū)別開(kāi)呢,其實(shí)不然,下面就跟大家分享一下,關(guān)于include和require的區(qū)別。
1.引用文件方式
對(duì)include()來(lái)說(shuō),在include()執(zhí)行時(shí)文件每次都要進(jìn)行讀取和評(píng)估;而對(duì)于require()來(lái)說(shuō),文件只處理一次(實(shí)際上,文件內(nèi)容替換了require()語(yǔ)句)。這就意味著如果有包含這些指令之一的代碼和可能執(zhí)行多次的代碼,則使用require()效率比較高。另一方面,如果每次執(zhí)行代碼時(shí)相讀取不同的文件,或者有通過(guò)一組文件疊代的循環(huán),就使用include(),因?yàn)榭梢越o想要包括的文件名設(shè)置一個(gè)變量,當(dāng)參數(shù)為include()時(shí)使用這個(gè)變量。
2.是否有條件引用
在PHP變成中,include()與require()的功能相同,但在用法上卻有一些不同,include()是有條件包含函數(shù),而require()則是無(wú)條件包含函數(shù)。例如在下面的一個(gè)例子中,如果變量$somgthing為真,則將包含文件somefile:
if($something){
include("somefile");
}
但不管$something取何值,下面的代碼將把文件somefile包含進(jìn)文件里:
if($something){
require("somefile");
}
下面的這個(gè)有趣的例子充分說(shuō)明了這兩個(gè)函數(shù)之間的不同。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
}
在這段代碼中,每一次循環(huán)的時(shí)候,程序都將把同一個(gè)文件包含進(jìn)去。很顯然這不是程序員的初衷,從代碼中我們可以看出這段代碼希望在每次循環(huán)時(shí),將不同的文件包含進(jìn)來(lái)。如果要完成這個(gè)功能,必須求助函數(shù)include():
$i = 1;
while ($i < 3) {
include("somefile.$i");
$i++;
}
3.報(bào)錯(cuò)
用例子來(lái)說(shuō)話,寫(xiě)兩個(gè)php文件,名字為test1.php 和test2.php,注意相同的目錄中,不要存在一個(gè)名字是test999.php的文件。
test.php
<?PHP
include (”test999.php”);
echo “abc”;
?>
test2.php
<?PHP
require (”test999.php”)
echo “abc”;
?>
瀏覽第一個(gè)文件,因?yàn)闆](méi)有找到test999.php文件,我們看到了報(bào)錯(cuò)信息,同時(shí),報(bào)錯(cuò)信息的下邊顯示了abc,你看到的可能是類(lèi)似下邊的情況:
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
瀏覽第二個(gè)文件,因?yàn)闆](méi)有找到test999.php文件,我們看到了報(bào)錯(cuò)信息,但是,報(bào)錯(cuò)信息的下邊沒(méi)有顯示abc,你看到的可能是類(lèi)似下邊的情況:
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引入文件的時(shí)候,如果碰到錯(cuò)誤,會(huì)給出提示,并繼續(xù)運(yùn)行下邊的代碼,require引入文件的時(shí)候,如果碰到錯(cuò)誤,會(huì)給出提示,并停止運(yùn)行下邊的代碼。
- 1. ASP中動(dòng)態(tài)include文件實(shí)例代碼分享
- 2. ASP與JSP之間的區(qū)別和聯(lián)系
- 3. 分享學(xué)習(xí)asp動(dòng)態(tài)include文件
- 4. 教你區(qū)別display:inline與float:left
- 5. array和row在數(shù)組中的區(qū)別
- 6. 幫你怎么區(qū)別include和require
- 7. 關(guān)于echo(),print(),print_r()三者之間的區(qū)別
- 8. 教你區(qū)別Java引用與C指針
- 9. Office 365 β版本 小企業(yè)版和企業(yè)版收費(fèi)有區(qū)別
- 10. Java繼承和接口的區(qū)別