require和include最根本的區(qū)別,其實(shí)就在錯(cuò)誤處理的方式不一樣
include,當(dāng)引入的文件不存在時(shí),會(huì)顯示一個(gè)警告錯(cuò)誤,但是不影響其他代碼的執(zhí)行。
require,當(dāng)引入的文件不存在時(shí),會(huì)產(chǎn)生一個(gè)致命錯(cuò)誤,并且程序中斷執(zhí)行了。
實(shí)例分析
以下附上我的目錄文件結(jié)構(gòu),就以下這兩個(gè)文件

include使用
在test文件中寫(xiě)如下代碼
<?php
include 'code.php';
echo 'hello';
?>
運(yùn)行 http://localhost/test/test.php
如下正常輸出

如果寫(xiě)了以下代碼的話
<?php
include 'code1.php';
echo 'hello';
?>
運(yùn)行時(shí)如下所示,會(huì)產(chǎn)生一個(gè)警告,但不會(huì)影響代碼的執(zhí)行

require使用
如果寫(xiě)入如下代碼時(shí):
<?php
require 'code.php';
echo 'hello';
?>
運(yùn)行如下圖所示,正常輸出

如果寫(xiě)人以下代碼時(shí)
<?php
require 'code1.php';
echo 'hello';
?>
運(yùn)行時(shí)如下圖所示,會(huì)產(chǎn)生一個(gè)fatal error 錯(cuò)誤,php執(zhí)行結(jié)束,不再執(zhí)行

include_once使用
include_once和include用法基本相同,唯一不同的是,使用include_once會(huì)提前檢查導(dǎo)入的檔案是不是已經(jīng)在程序中的其他地方導(dǎo)入過(guò)了,導(dǎo)入過(guò)的話,就不再導(dǎo)入。這個(gè)可以避免重復(fù)定義相同函數(shù)名的錯(cuò)誤,require_once類似 include_once
如下圖所示
code.php文件
<?php
function ge(){
echo "11";
}
?>
test.php文件
<?php
include 'code.php';
include 'code.php';
echo "hello";
?>
運(yùn)行 http://localhost/test/test.php
會(huì)報(bào)錯(cuò),因?yàn)橹貜?fù)導(dǎo)入文件,導(dǎo)致 有了兩個(gè)相同的函數(shù) ge(),故產(chǎn)生錯(cuò)誤

當(dāng)把include 換成 include_oncde 的時(shí)候
<?php
include 'code.php';
include_once 'code.php';
echo "hello";
?>
運(yùn)行看看,正常輸出

以上就是我對(duì) include、require、include_once、require_once 的總結(jié),如有錯(cuò)誤,還望指正。